温馨提示×

MongoDB在CentOS上的数据迁移方法

小樊
43
2025-08-06 11:47:36
栏目: 云计算

以下是在CentOS上进行MongoDB数据迁移的常用方法:

一、使用命令行工具(推荐)

1. 全量迁移

  • 备份源数据
    mongodump --host <源IP> --port <源端口> --username <用户名> --password <密码> --authenticationDatabase admin --db <数据库名> --out /备份路径
    示例mongodump --host 192.168.1.100 --port 27017 -u admin -p 123456 --db test --out /data/backup
  • 传输备份文件
    scp -r /备份路径 <目标IP>:/目标路径
  • 恢复目标数据
    mongorestore --host <目标IP> --port <目标端口> --username <用户名> --password <密码> --authenticationDatabase admin /目标路径/<数据库名>

2. 增量迁移(需配合oplog)

  • 备份增量数据
    mongodump --host <源IP> --port <源端口> --username <用户名> --password <密码> --authenticationDatabase admin --query '{<条件>}' --oplog --out /增量备份路径
  • 恢复增量数据
    mongorestore --host <目标IP> --port <目标端口> --username <用户名> --password <密码> --authenticationDatabase admin --oplogReplay /增量备份路径

二、直接复制数据文件(适用于同版本迁移)

  1. 停止源MongoDB服务:
    sudo systemctl stop mongod
  2. 复制数据目录:
    rsync -av /var/lib/mongo/ <目标IP>:/var/lib/mongo/(需确保目标服务器已安装MongoDB且配置一致)
  3. 启动目标服务:
    sudo systemctl start mongod
    注意:需确保源和目标服务器的MongoDB版本、配置(如存储引擎、路径)完全一致。

三、使用专业工具

  • NineData:支持全量/增量迁移、不停服迁移,适合复杂场景(如跨云迁移)。
  • mongoshake:开源工具,支持实时同步和迁移,需部署在源和目标服务器之间。

四、注意事项

  • 权限:确保执行命令的用户具有足够的权限(如使用sudo)。
  • 版本兼容性:跨版本迁移时,建议先升级/降级到中间版本,避免数据格式不兼容。
  • 网络带宽:大容量数据迁移建议在低峰时段进行,或使用压缩传输(如scp -C)。
  • 验证数据:迁移后通过mongo客户端执行db.getCollectionNames()或查询关键数据验证完整性。

参考来源:

0