适用场景:有通过mongodump生成的备份文件(.bson/.tar.gz格式),需恢复整个数据库或指定集合。
操作步骤:
sudo systemctl stop mongod。/var/lib/mongodb)或自定义目录。mydb):mongorestore --host localhost --port 27017 /path/to/backup/mydb;mycollection):mongorestore --host localhost --port 27017 /path/to/backup/mydb/mycollection.bson -d mydb -c mycollection;mongorestore --gzip /path/to/backup/file.tar.gz;--drop选项,如mongorestore --drop /path/to/backup。sudo systemctl start mongod。适用场景:数据丢失发生在备份后,且备份时启用了Oplog(默认开启),需恢复备份后到故障前的增量数据。
前提条件:备份时需包含Oplog数据(通过--oplog选项备份,如mongodump --oplog /path/to/backup)。
操作步骤:
--oplogReplay的恢复命令:mongorestore --oplogReplay /path/to/backup,该命令会回放备份期间的所有操作,将数据恢复到故障前状态。适用场景:副本集架构中,主节点故障导致数据丢失,可从其他健康从节点恢复数据。
操作步骤:
rs.stepDown()(若当前有主节点)或rs.reconfig()强制提升该节点为主节点。replSet配置与原集群一致)。适用场景:使用支持快照的存储(如LVM、ZFS、云服务商快照功能),需快速恢复整个数据目录。
操作步骤:
lvcreate命令)。/var/lib/mongodb)。sudo systemctl start mongod,验证数据完整性。适用场景:常规方法无法恢复(如数据文件损坏、误删除),需使用专业工具。
常用工具:
mongorestore --dryRun模拟恢复);sudo chown -R mongodb:mongodb /var/lib/mongodb);