在 CentOS 上恢复 MongoDB 数据,常见方式主要有 mongorestore 恢复备份、从副本集/分片恢复、通过 WiredTiger 文件恢复 等。下面按最常用场景给你说明。
你之前使用过 mongodump 做过备份,例如:
mongodump --host 127.0.0.1 --port 27017 -o /data/mongo_backup
mongorestore --host 127.0.0.1 --port 27017 /data/mongo_backup
mongorestore --db mydb /data/mongo_backup/mydb
mongorestore --db mydb --collection users /data/mongo_backup/mydb/users.bson
mongorestore \
--host 127.0.0.1 \
--port 27017 \
-u admin \
-p password \
--authenticationDatabase admin \
/data/mongo_backup
⚠️ 默认 mongorestore 不会删除原有数据,可能重复插入。
mongo
> use mydb
> db.dropDatabase()
mongorestore --drop /data/mongo_backup
适用于:
/var/lib/mongo 数据目录systemctl stop mongod
mv /var/lib/mongo /var/lib/mongo_bak
cp -r /backup/mongo /var/lib/mongo
chown -R mongod:mongod /var/lib/mongo
systemctl start mongod
⚠️ 版本必须一致(MongoDB 大版本一致)
如果是副本集:
mongorestore--oplogReplay 恢复时间点mongorestore --oplogReplay /data/mongo_backup
setenforce 0
# 或修改
vi /etc/selinux/config
SELINUX=disabled
firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload
如果你能告诉我:
mongodump 备份我可以给你 更精确的恢复命令。