工作中需要通过oplog恢复数据,下面的方法可行
准备目录(容量>100GB):
mkdir /data/disk1/oplog/ /data/disk1/new_oplog/
cd mongodb的目录
mongodump命令
按要恢复数据的时间戳导出oplog(ns为要恢复的数据库.表名;ts为Linux时间戳):
./mongodump --port 20000 -d local -c oplog.rs -q '{"ns":"test_db_01.test_table","ts":{"$lt:":Timestamp(1609380000,0)}}' -o /data/disk1/oplog/
单独拷贝出oplog的bson文件:
cp -r /data/disk1/oplog/local/oplog.rs.bson /data/disk1/new_oplog/oplog.bson
执行重放 mongorestore
./mongorestore --port 20000 --oplogReplay /data/disk1/new_oplog/