mongodb - 根據備份檔案和 oplog恢復資料到某個時間點,為什麼報不能恢復?
怪我咯
怪我咯 2017-05-02 09:21:31
0
0
881

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新(這不是廢話麼,我要恢復當然是恢復到以前,難道還能恢復到未來麼- -!!!!!!!!!! )

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(0)
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!