在进行数据恢复前,必须停止MongoDB服务,避免恢复过程中数据写入导致冲突或损坏。
执行命令:
sudo systemctl stop mongod
确保已拥有有效的MongoDB备份文件(常见格式为.tar.gz压缩包或.bson原始文件)。若未备份,需先通过mongodump创建备份(参考备份流程)。
/path/to/your/backup/mongodump-20250930.tar.gz(压缩格式)/path/to/your/backup/mydatabase.bson(原始格式)为防止恢复过程中出现数据冲突,建议备份当前MongoDB数据目录(默认路径为/var/lib/mongo),再清空该目录。
执行命令:
# 备份当前数据(可选)
sudo cp -R /var/lib/mongo /var/lib/mongo_backup
# 清空当前数据目录
sudo rm -rf /var/lib/mongo/*
若备份为压缩包,需先解压到MongoDB数据目录,再调整权限。
执行命令:
# 解压备份文件到根目录(根据备份路径调整)
sudo tar zxvf /path/to/your/backup/mongodump-20250930.tar.gz -C /
# 将解压后的数据移动到MongoDB标准数据目录
sudo mv /data/db /var/lib/mongo
# 更改数据目录权限(确保mongod用户可访问)
sudo chown -R mongod:mongod /var/lib/mongo
若备份为.bson文件,需使用mongorestore工具直接恢复。
sudo yum install -y mongodb-org-tools
# 恢复整个备份目录到指定数据库(如mydatabase)
sudo mongorestore --db mydatabase /path/to/your/backup/
# 恢复单个集合(如mycollection)
sudo mongorestore --db mydatabase --collection mycollection /path/to/your/backup/mydatabase/mycollection.bson
--drop:恢复前删除目标数据库/集合中的现有数据(避免重复);--gzip:若备份文件为gzip压缩格式,需添加此选项;--host/--port:指定MongoDB服务器地址和端口(默认localhost:27017);--username/--password:需身份验证时添加(如--username admin --password 123456 --authenticationDatabase admin)。恢复完成后,启动MongoDB服务并检查状态。
执行命令:
# 启动服务
sudo systemctl start mongod
# 检查服务状态(确保为“active (running)”)
sudo systemctl status mongod
通过MongoDB Shell登录实例,检查数据是否恢复成功。
执行命令:
# 登录Shell
mongo -u admin -p 123456 --authenticationDatabase admin
# 切换到目标数据库
use mydatabase
# 查看集合列表
show collections
# 查询集合中的数据(如mycollection)
db.mycollection.find().pretty()
/var/lib/mongo)属主为mongod用户,否则服务无法启动;journalctl -xe或/var/log/mongodb/mongod.log查看错误日志。