Mongodb
数据库误删后的恢复⽅法(两种)
⽅法⼀:通过
oplog
恢复
如果部署的是
MongoDB
复制集,这时还有⼀线希望,可以通过
oplog
来尽可能的恢复数据;
MongoDB
复制集的每⼀条修改
操作都会记录⼀条
oplog
,所以当数据库被误删后,可以通过重放现有的
oplog
来「尽可能的恢复数据」。前不久遇到的⼀个
⽤户,运⽓⾮常好,数据库是最近才创建的,所有的操作都还保留在
oplog
⾥,所以⽤户通过
oplog
把所有误删的数据都找回
了。
通过
oplog
恢复数据的流程⾮常简单,只需要把
oplog
集合通过
mongodump
导出,然后通过
mongorestore
的
oplogReplay
模
式重放⼀下。
Step1:
导出
oplog
集合
mongodump -d local -c oplog.rs -d -o backupdir
Step2:
拷贝
oplog
集合的数据
mkdir new_backupdir
cp backupdir/local/oplog.rs.bson new_backupdir/oplog.bson
Step3:
重放
oplog
mongorestore --oplogReplay new_backupdir
⽅法⼆:通过备份集恢复
如果对
MongoDB
做了全量备份
+
增量备份,那么可以通过备份集及来恢复数据。备份可以是多种形式,⽐如