想为mongodb做一个增量备份.日记?OPLOG?

Ale*_*tin 8 backup binlog journaling mongodb

我想每天备份一个mongodb数据库,可能是mongodump.为了不丢失任何数据,我希望这是渐进式的,所以如果在一天中间出现问题,我需要能够重播当天的更改直到完成mongorestore之后的故障点.

我是否正确理解我需要使用oplog?还是记录答案?我尝试过以下操作:

  1. 将我的mongo数据库转换为只有一个的副本集,以便创建一个oplog.(这感觉非常hacky)
  2. 使用--oplog选项重新启动mongod
  3. 执行应记录在oplog中的更改

但是,没有任何东西存储在oplog中.进行此类增量备份的最佳方法是什么?我基本上都在寻找类似的方法来重放mysql binlog.

谢谢

Jen*_*nna 7

MongoDB不提供开箱即用的增量备份选项,但可以执行文件快照并重放oplog.您是否按照文档中列出的步骤将服务器设置为副本集? http://www.mongodb.org/display/DOCS/Replica+Sets+-+Basics

你能告诉我们这些备份的目的吗?您是否考虑过将第二个节点添加到副本集以获得数据持久性?

如果您已经完成了将服务器设置为副本集的成员的步骤,那么您可以在shell中运行rs.status()吗?

另一个注意事项(只是为了澄清) - 日记并不意味着备份策略; 日志记录仅确保数据库在发生故障转移时可以返回到一致状态.强烈建议在启用日记功能的情况下运行.

以下是备份的MongoDB文档:http: //www.mongodb.org/display/DOCS/Backups

  • mongodump --oplog确保在转储发生时创建的任何oplog条目都可以使用mongorestore --oplogReplay重播.您不能使用mongorestore --oplogReplay来重放转储完成后发生的oplog操作.您可能会调查的一个解决方案是每小时转储oplog集合并使用applyOps命令:http://docs.mongodb.org/manual/reference/commands/#applyOps (2认同)