我想每天备份一个单独的mongodb数据库,可能需要使用mongodump。为了不丢失任何数据,我希望这是渐进的,所以如果在一天中出现问题,我需要能够重播当天的变化,直到做完一个mongorestore之后的失败点。想为MongoDB做增量备份。日记? OPLOG?
我是否正确理解,我需要使用OPLOG这个?或者正在记录答案?我试着做以下操作:
- 将我的mongo数据库变成一个副本集,以便它创建一个oplog。 (这种感觉非常哈克)
- 重新启动的mongod与--oplog选项
- 表演应该被记录在OPLOG
但是从来都没有被存储在OPLOG变化。做这种增量备份的最佳方式是什么?我基本上在寻找类似的方法来重放mysql binlog。
感谢
感谢您的澄清,我昨天看了更多,我明白需要发生什么。我想要做的是做一个每日mongodump,将其保存到S3,并且每小时也将我的oplog保存到S3。我有,如果你会这么好心将这两项后续跟进问题: 1.我OPLOG存储在本地数据库和我能够从现在的蒙戈外壳访问它。要备份oplog,我可以将所有本地。(1-N)和local.ns文件复制到s3吗? 2.什么是重播oplogs的最佳方式?是mongorestore --oplogReplay足够吗? 非常感谢! – 2012-08-16 20:40:48
mongodump --oplog确保任何OPLOG条目而转储发生可与mongorestore --oplogReplay重播创建。您不能使用mongorestore --oplogReplay来重放转储完成后发生的oplog操作。你可能会探讨一个解决方案是转储OPLOG收集每隔一小时,并使用applyOps命令:http://docs.mongodb.org/manual/reference/commands/#applyOps – Jenna 2012-08-16 22:35:15
这可能是哈克..但我认为使用mongorestore --oplogReplay实际上工作。我所做的只是把oplog记录下来,移动了最终的oplog.rs。bson'到'dump/oplog.bson'并运行mongorestore --oplogReplay。这是危险的吗?如果是这样,我一定会使用applyOps技术。 – 2012-08-16 23:29:10