1 進行備份到/var/lib/dumps/
2 誤操作刪除了一個表格
3備份oplog到/root/dump/目錄
4 將/root/dump/local/oplog.rs.bson 複製為/root/dump/oplog.bson
5 透過bsondump找到誤刪除的時間點
6 根據找到的時間點來恢復到誤刪除之前 報錯:
接著我再資料庫誤操作的那個表再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: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指定的時間點指點的時間。
[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新(這不是廢話麼,我要恢復當然是恢復到以前,難道還能恢復到未來麼- -!!!!!!!!!! )
走同样的路,发现不同的人生