MongoDB: Backup And Recovery

官方文档介绍了好几种备份方式,这里只涉及到使用mongodump进行备份,mongorestore进行重建。原因时,这是最常用的方式。

mongodump

命令:

mongodump -h ${host} --port ${port} -u ${username} -p ${passwd} -o ${backupFilePath}

其他选项:

  • --quiet 安静模式,仅输出错误信息
  • --ipv6 启用ipv6,默认关闭
  • --authenticationDatabase ${database} 没有则,默认所有要备份的的db都有用户的凭证
  • --authenticationMechanism ${arb} 用户验证方法,支持MONGODB-CR, MONGODB-X509, PLAIN, GSSAPI
  • --gssapiServiceName ${GSS_Server} 用户验证方法为GSSAPI时,验证服务名,不带此参数默认为mongodb
  • --gssapiHostName GSS服务器hostname
  • --dbpath ${dbpath} 通过数据库所在文件进行备份,如果mongod进程启动,可能会有冲突
  • --directoryperdb 没有db使用独立文件夹存放备份数据
  • --journal 默认开启,保证数据文件完整,可从灾难中恢复
  • --db ${dbname} 指定备份的db,默认备份全部db
  • --collection ${collection} 仅备份指定集合
  • --query ${query} 根据query,备份数据
  • --oplog 在备份过程中,保留oplog,可以在恢复数据的时候进行操作重现,保证在备份过程中新的操作也可以被保留
  • --repair 如果要备份的数据库是crash掉的,这个选项会在dump的时候回复数据库,可能会使备份完的数据中有重复数据
  • --forceTableScan 当你使用--query时,dump过程中会使用索引,而不是全文扫描,这个选项保证使用全文扫描

mongorestore

命令:

mongorestore -h ${mongodb_host} --port ${mongodb_port} -u ${username} -p ${password} ${directoryOfBackup}

其他选项:

基本上与mongodump对应

  • --quiet 安静模式,仅输出错误信息
  • --ipv6 启用ipv6,默认关闭
  • --authenticationDatabase ${database} 没有则,默认所有要备份的的db都有用户的凭证
  • --authenticationMechanism ${arb} 用户验证方法,支持MONGODB-CR, MONGODB-X509, PLAIN, GSSAPI
  • --gssapiServiceName ${GSS_Server} 用户验证方法为GSSAPI时,验证服务名,不带此参数默认为mongodb
  • --gssapiHostName GSS服务器hostname
  • --dbpath ${dbpath} 支持对db存放文件夹操作,如果mongod启动,且使用了该db文件夹,则冲突
  • --directoryperdb 每个db的数据存放在独立的文件夹中
  • --journal 默认开启,保证数据文件完整,可从灾难中恢复
  • --db ${dbname} 指定db
  • --collection ${collection} 指定集合
  • --objcheck 插入前对数据进行校验
  • --filter ${JSON} 数据过滤,仅插入符合格式的数据
  • --drop 删除所有已有集合
  • --oplogReplay 重建完成后,执行oplog,对应mongodump--oplog
  • --oplogLimit <timestamp>
  • --repair 如果要备份的数据库是crash掉的,这个选项会在dump的时候回复数据库,可能会使备份完的数据中有重复数据
  • --forceTableScan 当你使用--query时,dump过程中会使用索引,而不是全文扫描,这个选项保证使用全文扫描
    原文作者:谁又失忆
    原文地址: https://www.jianshu.com/p/77686787d626
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞