互联网服务运维MongoDB

mongodb数据库在日常运维过程中数据的导入导出、备份恢复如何实现?

主要使用mongodb的命令行实现,请专家解答

参与11

2同行回答

TFTF技术总监上海锦木信息
MongoDB的备份主要有4种方式,前3种在分片环境和基于任意时间点的恢复上都比较难实现,第4种是企业版的收费功能Mongodump备份单个或者全部database,使用mongorestore恢复会影响数据库的性能,数据量大谨慎使用文件系统快照需要开启journaldb.fsyncLock()把数据刷新到磁盘通过lv...显示全部

MongoDB的备份主要有4种方式,前3种在分片环境和基于任意时间点的恢复上都比较难实现,第4种是企业版的收费功能

  1. Mongodump
  2. 备份单个或者全部database,使用mongorestore恢复
  3. 会影响数据库的性能,数据量大谨慎使用
  4. 文件系统快照
  5. 需要开启journal
  6. db.fsyncLock()把数据刷新到磁盘
  7. 通过lvm快照备份
  8. 期间可能无法对数据库进行查询
  9. 备份secondary节点
  10. 关闭复制集的从节点
  11. 备份数据文件
  12. 启动从节点
  13. OPS Manager(MongoDB企业版工具)
  14. 在线实时备份
  15. 恢复到任意时间点
收起
IT咨询服务 · 2018-04-23
浏览2331
彬彬 邀答
liucj2004liucj2004其它undefined
补充TF的回答1、mongodump可以通过Oplog备份,做增量备份和增量恢复2、文件系统快照db.fsyncLock()只能锁住sever层,无法锁住engine层。建议等engine脏数据刷盘后,再进行备份。或者直接锁系统层面的3、备份secondary节点有延迟备份节点概念,也可以当做应急恢复其他分片环境的...显示全部

补充TF的回答
1、mongodump
可以通过Oplog备份,做增量备份和增量恢复

2、文件系统快照
db.fsyncLock()只能锁住sever层,无法锁住engine层。建议等engine脏数据刷盘后,再进行备份。
或者直接锁系统层面的

3、备份secondary节点
有延迟备份节点概念,也可以当做应急恢复

其他
分片环境的备份任意时间点恢复,一般是停止config的rebalance,然后备份oplog。保证恢复的一致性点。
percona提供了shard环境的一致性备份工具(开源)mongodb_consistent_backup
另外,percona发行版的mongodb,提供了物理备份的工具

收起
农业其它 · 2018-05-06
浏览2209

提问者

jwhdhr
软件开发工程师农商银行
擅长领域: 数据库中间件消息中间件

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-04-22
  • 关注会员:3 人
  • 问题浏览:2910
  • 最近回答:2018-05-06
  • X社区推广