温馨提示×

mongodb数据恢复centos上怎么操作

小樊
49
2025-10-23 22:13:17
栏目: 云计算

CentOS上MongoDB数据恢复操作步骤

1. 停止MongoDB服务

恢复前需停止MongoDB服务,防止数据写入导致恢复失败或损坏。

sudo systemctl stop mongod

2. 备份现有数据(可选但推荐)

恢复前备份当前MongoDB数据目录(默认/var/lib/mongo),避免恢复过程中出现意外可回滚。

sudo cp -R /var/lib/mongo /var/lib/mongo_backup

3. 准备恢复环境

  • 确认备份文件:确保有有效的MongoDB备份(常见格式为.tar.gz压缩包或.bson文件)。
  • 安装工具包:若使用.bson格式备份,需安装MongoDB官方工具包(含mongorestore命令)。
    sudo yum install -y mongodb-org-tools
    

4. 执行数据恢复

根据备份格式选择对应恢复方式:

① 恢复.tar.gz格式备份

解压备份文件到MongoDB默认数据目录(/var/lib/mongo):

sudo tar zxvf /path/to/your/backup.tar.gz -C /  # 解压到根目录
sudo mv /data/db /var/lib/mongo                # 移动解压后的数据目录到标准位置
② 恢复.bson格式备份

使用mongorestore命令指定备份文件路径和目标数据库(若数据库不存在会自动创建):

sudo mongorestore --db your_database_name /path/to/your/backup.bson
  • 若需恢复到远程MongoDB实例,添加连接参数:
    sudo mongorestore --host <hostname> --port <port> --username <username> --password <password> --authenticationDatabase admin /path/to/your/backup.bson
    

5. 清理与权限设置(可选)

  • 删除旧数据:若恢复前未备份现有数据,可直接删除原数据目录(谨慎操作):
    sudo rm -rf /var/lib/mongo
    
  • 设置权限:确保MongoDB用户(mongod)拥有恢复后数据目录的所有权:
    sudo chown -R mongod:mongod /var/lib/mongo
    

6. 启动MongoDB服务

恢复完成后启动服务:

sudo systemctl start mongod

检查服务状态,确认运行正常:

sudo systemctl status mongod

7. 验证数据恢复

连接到MongoDB Shell,检查数据库和集合是否恢复:

mongo
# 查看数据库列表
show dbs
# 切换到目标数据库
use your_database_name
# 查看集合中的数据
db.your_collection_name.find()

注意事项

  • 备份完整性:恢复前务必确认备份文件未损坏(可通过tar -tzvf backup.tar.gz查看压缩包内容,或尝试读取.bson文件)。
  • 版本兼容性:备份数据需与当前MongoDB版本兼容(如v4.4备份无法直接恢复到v5.0+)。
  • 日志排查:若恢复失败,查看MongoDB日志(/var/log/mongodb/mongod.log)定位问题。
  • 测试环境:生产环境恢复前,建议先在测试环境验证恢复流程。

0