我们有完整的 lvm 快照备份。我们正在尝试每小时进行一次 oplog 备份并保存为文件。如果需要,我们喜欢在完整备份之上应用 oplog 备份。我们想知道如何做到这一点。我们每天都在进行 LVM 快照完整备份。我们的 Oplog 是 80GB,可以容纳 30 天的 oplog。但是我们面临着应用它的问题。我可以每小时进行一次 oplog 备份。但问题是:如何应用它?我们不想要重复或任何丢失的数据。
oplog是幂等的,您可以根据需要多次运行其中的操作,并且不会出现重复或问题,除非您在一组处于奇怪状态的数据文件上运行操作 。
但是,应该注意的是,只要您将日志作为 LVM 快照的一部分,就不需要重新运行 oplog 来实现一致备份。
话虽如此,如果您确实有 oplog 的副本,则可以通过两种方式“重放”它:
mongodump/mongorestore
重播 oplog(见下文)要以这种方式使用mongodump
,您首先必须将其转储为 BSON 格式,以便可以重新存储:
mongodump --dbpath /path/to/folder/with/oplog/files -d local -c oplog.rs -o oplogDump
Run Code Online (Sandbox Code Playgroud)
接下来,将 bson 文件移出文件夹(这基本上是为了方便):
mkdir oplogRestore
mv oplogDump/local/oplog.rs.bson oplogRestore/oplog.bson
Run Code Online (Sandbox Code Playgroud)
现在您可以使用 mongorestore 重播 oplog 并将其应用到给定的运行实例:
mongorestore --host host:port --oplogReplay oplogRestore
Run Code Online (Sandbox Code Playgroud)
如果您只想重播到某个点,您也可以使用 oplogLimit 选项。有关更多信息,请参阅Asya 的出色回答。
请注意,这一切都不会特别快,也不是绝对必要的(如上所述)。
归档时间: |
|
查看次数: |
7473 次 |
最近记录: |