我想以一种方式备份MongoDB副本集,以确保备份开始时数据库的一致性。 正如文档所述,– --oplog
标志到mongodump
将在备份过程中复制oplog。 但是,这可以确保备份过程结束时的完整性,即在过程启动后可能需要几十分钟的时间。
有些接近我一直在想:
有没有其他方法可以确保从某个确定的时间获得准确的(〜5秒钟的时间)转储?
有几种方法可以完成“启动”时间点备份。 请注意,以下内容适用于备份副本集。 对分片群集的备份具有额外的复杂性。
1)closuresmongod
closures一个mongod进程并复制这些文件或者对你的文件集执行一个mongodump。
2)locking/清空数据
db.fsyncLock() mongo shell调用或执行关联的fsyncLock命令将阻止写入,并允许您复制数据/文件集。 该命令将防止写入和刷新数据文件。
3)时间点文件系统快照
如果您拥有允许数据和日记文件的时间点快照的机制,则可以使用此机制来获取时间点副本。 在Linux上,一个很好的方法是通过LVM将数据和日志文件放在一个卷组中。
4)MMS备份
MongoDB公司提供了一个备份服务,将允许时间点恢复。 有两个选项,云备份服务或托pipe备份。 两者都是付费服务,第一个是使用费,第二个是MongoDB订户。