我想每天備份一個單獨的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