在进行数据恢复前,必须停止MongoDB服务,避免服务运行时写入新数据导致恢复冲突或数据损坏。
执行命令:
sudo systemctl stop mongod
恢复前备份当前MongoDB数据目录(默认路径为/var/lib/mongo),防止恢复过程中出现意外(如恢复失败、数据覆盖),便于回滚。
执行命令:
sudo cp -R /var/lib/mongo /var/lib/mongo_backup
确保已获取有效的MongoDB备份文件(常见格式为.tar.gz压缩包或.bson二进制文件)。若备份文件来自外部存储,需通过scp等工具传输至CentOS服务器,并验证文件完整性(如检查文件大小、MD5校验值)。
若备份为.tar.gz格式(通常为mongodump生成的压缩包),需解压至MongoDB默认数据目录:
# 解压备份文件到根目录(根据实际备份路径调整)
sudo tar zxvf /path/to/your/backup.tar.gz -C /
# 将解压后的数据目录移动至MongoDB标准路径(默认/var/lib/mongo)
sudo mv /data/db /var/lib/mongo
注:若解压后目录结构为
/data/db(mongodump默认输出),需将其重命名为mongo以匹配MongoDB的数据目录要求。
若备份为.bson格式(如mongodump生成的collection.bson文件),需使用mongorestore工具(属于MongoDB工具包)进行恢复:
# 安装MongoDB工具包(若未安装)
sudo yum install -y mongodb-org-tools
# 恢复整个数据库(替换your_database_name为实际数据库名,/path/to/your/backup.bson为备份文件路径)
sudo mongorestore --db your_database_name /path/to/your/backup.bson
# 恢复指定集合(替换your_collection_name为实际集合名)
sudo mongorestore --db your_database_name /path/to/your/backup.bson/your_collection_name.bson
提示:
mongorestore默认会覆盖目标数据库/集合中的现有数据,若需保留现有数据,可添加--noReplace参数。
恢复完成后,启动MongoDB服务以使数据生效:
sudo systemctl start mongod
通过MongoDB Shell连接数据库,检查数据是否恢复成功:
# 进入MongoDB Shell
mongo
# 查看所有数据库列表
show dbs
# 切换至目标数据库(替换your_database_name为实际数据库名)
use your_database_name
# 查看数据库中的集合列表
show collections
# 查询集合中的数据(替换your_collection_name为实际集合名)
db.your_collection_name.find()
mongod用户:sudo chown -R mongod:mongod /var/lib/mongo
--auth参数),恢复时需添加认证参数(-u 用户名 -p 密码 --authenticationDatabase admin),例如:sudo mongorestore -u admin -p yourpassword --authenticationDatabase admin /path/to/your/backup.bson
mongodump结合crontab实现,具体脚本可参考搜索结果中的示例。