• linux下的mongodb的备份与恢复


    mongodb的备份有两种方式:

    1.直接拷贝数据目录下的一切文件

    2.使用mongodump方式

    3.主从复制:http://www.cnblogs.com/huangxincheng/archive/2012/03/04/2379755.html  (这篇详细介绍了主从复制)

    下面一一说明:

    1.直接拷贝数据目录下的一切文件:

    这种方式用来备份整个mongodb的数据库,不能备份单个数据库或者集合或者子集合

    在拷贝过程中必须阻止数据文件发生更改。因此需要对数据库加锁,以防止数据写入.

    db.fsyncLock()

    上面的命令将阻塞写入操作,并将脏数据刷新到磁盘上,确保数据一致。
    然后,拷贝数据文件到备份目录下

    cp -R /data/db/* /backup

    文件复制完成后,对数据库进行解锁,允许写操作

     db.fsyncUnlock()

    注意: 在执行db.fsyncLock()和db.fsyncUnlock()时,不能关闭当前的shell窗口,否则可能无法连接而需要重新启动mongod服务。

    恢复时,确保mongod没有运行,清空数据目录,将备份的数据拷贝到数据目录下,然后启动mongod

    cp -R /backup/* /data/db/
    mongod -f mongod.conf

    2.使用mongodump方式:

    千万不要fsyncLock与mongodump配合使用,如果数据库被锁定了,mongodump将永远挂起。 

    使用mongodump备份比较慢,在备份复制集时还有些问题,后续会说到。但是,用来备份单个数据库、集合、子集合还是比较好的方法。

    /usr/local/mongodb/bin/mongodump -h 127.0.0.1 -d log-idp-mongo -o /databack_data1/backups/${DATE}
    /usr/local/mongodb/bin/mongodump -h 127.0.0.1 -d log-hra-mongo -o /databack_data1/backups/${DATE}[root@mongo ~]# 
    # ./mongodump --help
    options:
      --help                                显示帮助信息
      -v [ --verbose ]                      打印出更多信息,如时间等等 -vvvvv
      --version                             打印版本信息
      -h [ --host ] arg                     指定连接的mongodb主机,复制集时设置为<set name>/s1,s2
      --port arg                            指定mongodb端口号,也可以这么指定--host hostname:port
      --ipv6                                启用支持IPv6 support
      -u [ --username ] arg                 用户名
      -p [ --password ] arg                 密码
      --authenticationDatabase arg          user source (defaults to dbname)
      --authenticationMechanism arg (=MONGODB-CR)
                                            authentication mechanism
      --dbpath arg                          直接访问mongod的数据库文件,而不是连接到mongodb服务器。需要锁定数据目录,如果mongod当前在访问相同路径将不能使用。也就是说,mongod运行的情况下不能使用--dbpath,mongod未运行的情况下可以直接指定--dbpath
      --directoryperdb                      每个db一个单独的目录,需要指定dbpath 
      --journal                             启用journaling,需要指定dbpath
      -d [ --db ] arg                       指定数据库
      -c [ --collection ] arg               指定集合
      -o [ --out ] arg (=dump)              指定输出目录,"-"表示标准输出
      -q [ --query ] arg                    json查询
      --oplog                               使用oplog来生产时间点快照
      --repair                              尝试恢复崩溃的数据库
      --forceTableScan                      强制表扫描,不使用$snapshot

    常用的是:mongodump -h 主机 -u 用户名 -p 密码 -d 数据库 -c 集合 -o 备份目录

    mongodb恢复时采用mongorestore来恢复

    # ./mongorestore --help   //相同部分参数意义参加上面的mongodump
      -v [ --verbose ]                      
      --version                             
      -h [ --host ] arg                     
      --port arg                            
      --ipv6                                
      -u [ --username ] arg                 
      -p [ --password ] arg                 
      --authenticationDatabase arg          
      --authenticationMechanism arg (=MONGODB-CR)
      --dbpath arg                         
      --directoryperdb                      
      --journal 
      -d [ --db ] arg  
      -c [ --collection ] arg  
      --objcheck                            在插入前验证对象,默认启用
      --noobjcheck                          不在插入前验证对象
      --filter arg                          插入前过滤
      --drop                                在插入前删除所有文档
      --oplogReplay                         在恢复时应用oplog
      --oplogLimit arg                      include oplog entries before the 
                                            provided Timestamp (seconds[:ordinal]) 
                                            during the oplog replay; the ordinal 
                                            value is optional
      --keepIndexVersion                    don't upgrade indexes to newest version
      --noOptionsRestore                    don't restore collection options
      --noIndexRestore                      don't restore indexes
      --w arg (=0)                          minimum number of replicas per write

    恢复整个mongodb的数据库:

    mongorestore -p 27017 dump/

    恢复到特定的库和集合:

    mongorestore --db ttlsa_com --collection posts dump/old_ttlsa_com/old_posts.bson

    注意: mongodump和mongorestore版本最好相匹配。

  • 相关阅读:
    ios开发-2015-07-19
    ios开发-2015-07-18
    ios开发-2015-07-17
    ios开发-2015-07-16
    ios开发-2015-07-15
    ios开发-2015-07-14
    ios开发-2015-07-13
    Selenium源码分析之WebDriver
    webdriver实现原理 分类: Selenium 2015-07-16 00:16 11人阅读 评论(0) 收藏
    webdriver实现原理
  • 原文地址:https://www.cnblogs.com/shilin000/p/5248177.html
Copyright © 2020-2023  润新知