以下是在Ubuntu上恢复MongoDB数据的步骤,分为备份恢复和误删恢复两种场景:
一、备份恢复(有备份文件)
-
停止MongoDB服务
sudo systemctl stop mongod -
删除现有数据(可选)
sudo rm -rf /var/lib/mongodb/* -
使用
mongorestore恢复数据- 恢复整个数据库:
mongorestore --db <数据库名> <备份目录>例:
mongorestore --db mydb /backup/mydb - 恢复单个集合:
mongorestore --db <数据库名> --collection <集合名> <备份目录>/<集合名>.bson
- 恢复整个数据库:
-
启动MongoDB服务
sudo systemctl start mongod -
验证数据
mongo use <数据库名> db.<集合名>.find()
二、误删数据恢复(无备份,需提前启用Oplog)
-
停止MongoDB服务
sudo systemctl stop mongod -
重放Oplog恢复数据
- 导出Oplog:
mongodump -d local -c oplog.rs -o /tmp/oplog_backup - 重放Oplog:
mongorestore --oplogReplay /tmp/oplog_backup
- 导出Oplog:
-
启动MongoDB服务并验证
sudo systemctl start mongod mongo use <数据库名> db.<集合名>.find()
注意事项
- 恢复前确保备份文件完整,建议定期通过
mongodump备份数据。 - 误删恢复依赖Oplog,需提前在
mongod.conf中启用replSet并配置复制集。 - 生产环境避免直接在原数据目录操作,建议先复制数据文件到其他路径处理。