首頁  >  問答  >  主體

mongodb - 根據備份檔案和 oplog恢復資料到某個時間點,為什麼報不能恢復?

1 進行備份到/var/lib/dumps/

2 誤操作刪除了一個表格

3備份oplog到/root/dump/目錄

4 將/root/dump/local/oplog.rs.bson 複製為/root/dump/oplog.bson

5 透過bsondump找到誤刪除的時間點

6 根據找到的時間點來恢復到誤刪除之前 報錯:

[root@cd_spy2 /var/lib/dumps]# /usr/local/mongodb/bin/mongorestore --port 27020 --oplogReplay --oplogLimit 1472547691:1 /var/lib/dumpsed:127. :27020
Tue Aug 30 17:13:35.270 Latest oplog entry on the server is 1472547691:1
Tue Aug 30 17:13:35.270 Onrite applying oplogly {natch: "$: oplogly : oplogly" "$timestamp" : { "t" : 1472547691, "i" : 1 } }, "$lt" : { "$timestamp" : { "t" : 1472547691, "i" : 1 } } } }
Tue Aug 。 bson
Tue Aug 30 17:13:35.271 ERROR: The oplogLimit option cannot be used if normal databases/collections exist in the dump directory.


字面意思是先找到目前最新的oplog, 然後apply最新的oplog到我oplogLimit 指定的點位之間的事件(這個例子也就是什麼都不做)。這個我不理解,應該是apply 從我備份資料開始的時間點 到oplogLimit指定的時間點指點的時間。

接著我再資料庫誤操作的那個表再insert了一條數據,那系統最新的oplog就比我oplogLimit 指定的點位還要新了,再執行

[root@cd_spy2 /var/lib/dumps]# /usr/local/mongodb/bin/mongorestore --port 27020 --oplogReplay --oplogLimit 1472547691:1 /var/lib/dumpsed:127. :27020

Tue Aug 30 17:16:08.756 The oplogLimit is not newer than the last oplog entry on the server.


報錯:說我oplogLimit 指定的點位沒有系統的oplog新(這不是廢話麼,我要恢復當然是恢復到以前,難道還能恢復到未來麼- -!!!!!!!!!! )

怪我咯怪我咯2748 天前906

全部回覆(0)我來回復

無回覆
  • 取消回覆