Mongodb全備+增備+oplog恢復誤刪數據


 

 

此時測試表中有7條數據,做個全備。
全備:
mongodump --host=192.168.43.43 --port=37017 --oplog --out=/opt/mongo/fullbackup

 

 

在插入一條:

 

 

此時做增備,找出oplog中最近新增數據的ts時間:並記錄下這個時間:1574845947, 3,這個時間需要在做增備以及恢復的時候用到。
db.oplog.rs.find({op:{$ne:"n"}}).sort({$natural:-1}).limit(2);
 

 

 

做增備時利用剛剛查詢到的時間去做:
mongodump --host=192.168.43.43 --port=37017 -d local -c oplog.rs --query='{'ts':{$gt:Timestamp(1574845947, 3)}}' --out=/opt/mongo/oplog_cribak

 

 

全備時,有七條數據,增備時,新增了一條,共八條。這個時候在模擬誤刪除兩條數據。
刪除后集合中剩余6條數據。

 

 

接下來,需要恢復誤刪的兩條數據:
 
1、先進行全備恢復。看一下全備目錄中的數據,總共7條,和最開始進行全備的數據是一致的,也是7條。

 

 

2、增備目錄中的oplog記錄的第八條數據的ts記錄。可以看到增備中的七條數據+增備中的一條ts記錄數據,共八條,是沒問題的。

 

 

 

3、進行恢復。
先全備恢復,在增備恢復。
mkdir -p incre_bak
cp oplog_cribak/local/oplog.rs.bson incre_bak/oplog.bson

 

 

全備恢復:
mongorestore  --host=192.168.43.43 --port=37017 --oplogReplay  --dir=./fullbackup/

 

 

增備恢復:
mongorestore --host=192.168.43.43 --port=37017 --oplogReplay --oplogLimit=1574845947:3 --dir=./incre_bak

 

 

結果查看:
恢復后,進行登錄數據庫查看:此時是8條數據,已經恢復全。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM