- 首页 >
- 问答 >
-
云计算 >
- MongoDB在CentOS上如何恢复数据
MongoDB在CentOS上如何恢复数据
小樊
43
2025-10-08 23:36:51
MongoDB在CentOS上的数据恢复步骤
1. 准备工作
- 确认MongoDB服务状态:恢复前需停止MongoDB服务,避免数据冲突。
执行命令:sudo systemctl stop mongod
- 安装必要工具:若使用
mongorestore恢复.bson格式备份,需安装MongoDB工具包。
执行命令:sudo yum install -y mongodb-org-tools
- 备份当前数据(可选但推荐):恢复前备份现有数据目录(默认
/var/lib/mongo),防止恢复失败导致数据丢失。
执行命令:sudo cp -R /var/lib/mongo /var/lib/mongo_backup
2. 根据备份类型选择恢复方式
场景1:恢复mongodump生成的.tar.gz格式备份
- 解压备份文件:将备份文件解压到MongoDB数据目录(
/var/lib/mongo)。
执行命令:sudo tar zxvf /path/to/your/backup.tar.gz -C /
- 调整数据目录权限:确保MongoDB用户(
mongod)拥有数据目录所有权。
执行命令:sudo chown -R mongod:mongod /var/lib/mongo
- 启动MongoDB服务:恢复完成后启动服务。
执行命令:sudo systemctl start mongod
场景2:恢复mongodump生成的.bson格式备份
- 使用
mongorestore工具:直接恢复指定数据库或集合(支持增量恢复)。
- 恢复整个数据库:
执行命令:sudo mongorestore --db your_database_name /path/to/your/backup.bson
- 恢复指定集合:
执行命令:sudo mongorestore --db your_database_name --collection your_collection_name /path/to/your/backup.bson
- 覆盖现有数据:添加
--drop参数可先删除目标数据库/集合(谨慎使用)。
执行命令:sudo mongorestore --drop --db your_database_name /path/to/your/backup.bson
场景3:恢复物理备份(如xtrabackup生成的备份)
- 解压物理备份:使用
innobackupex工具解压备份文件。
执行命令:innobackupex --decompress --remove-original /path/to/physical_backup
- 恢复数据:通过
mongorestore将解压后的数据导入MongoDB。
执行命令:sudo mongorestore --host localhost --port 27017 --db your_database_name /path/to/physical_backup/your_database_name
3. 验证恢复结果
- 登录MongoDB Shell:执行
mongo命令进入交互式shell。
- 查看数据库列表:使用
show dbs命令确认目标数据库是否存在。
- 检查集合数据:切换至目标数据库(
use your_database_name),使用db.your_collection_name.find()查询集合中的数据,验证恢复完整性
注意事项
- 恢复前停止服务:强制恢复运行中的MongoDB可能导致数据损坏,务必先停止服务。
- 权限问题:恢复后需确保数据目录权限正确(
mongod:mongod),否则服务可能无法启动。
- 日志排查:若恢复失败,可通过
/var/log/mongodb/mongod.log查看详细错误信息,定位问题根源。