对于MongoDB版本3+
我们将MongoDB用作单个独立实例。我发现无法在不构建单个节点副本的情况下创建时间点恢复,因此我可以利用oplog来“重放事务”以进行时间点恢复。我做了一些测试,制作单节点副本,我似乎能够恢复到特定的时间。
是否有替代使用独立的mongodb来获取时间点恢复,或者我是否需要将其转换为单个节点replca。
由于
答案 0 :(得分:3)
按时间点我假设你的意思是任意时间点。您可以通过在此时获取文件系统快照来获取特定点的备份,但是您无法将该快照任意地(例如10秒)向前推送到另一个点,而无需另外拍摄快照或拥有oplog。
基本上,是的,您需要一个oplog(因此至少设置一个节点副本)才能将数据恢复到特定时间点。 oplog需要足够大,以涵盖备份/快照到您希望恢复的时间点之间的所有操作。
例如,如果您每24小时进行一次备份,那么您将需要一个oplog来覆盖至少24小时的操作,以便能够恢复到当天的任何时间点。您进行备份的频率越高,您在保留功能的同时制作的日志就越小。