温馨提示×

centos mongodb怎样迁移

小樊
41
2026-10-02 22:32:14
栏目: 云计算

在 CentOS 上迁移 MongoDB,常见有三种场景:同机换目录、跨机迁移、容器/云迁移。下面给你最实用、最稳妥的做法。


一、迁移前准备(必做)

1. 查看 MongoDB 版本

mongod --version
# 或
rpm -qa | grep mongo

⚠️ 迁移前后 大版本尽量一致(如 4.4 → 4.4),跨大版本要先升级。

2. 确认数据目录

cat /etc/mongod.conf | grep storage.dbPath

默认一般是:

/var/lib/mongo

3. 停服(重要)

systemctl stop mongod

二、方式一:同机迁移(更换数据目录)

适合:磁盘满了、换盘

1. 拷贝数据

cp -a /var/lib/mongo /data/mongo

2. 修改配置

vi /etc/mongod.conf
storage:
  dbPath: /data/mongo

3. 授权

chown -R mongod:mongod /data/mongo

4. 启动

systemctl start mongod

三、方式二:跨服务器迁移(最常用 ✅)

源服务器(老机器)

systemctl stop mongod
tar czf mongo.tar.gz /var/lib/mongo
scp mongo.tar.gz root@新IP:/root/

目标服务器(新机器)

# 安装同版本 MongoDB
tar xzf mongo.tar.gz -C /
chown -R mongod:mongod /var/lib/mongo
systemctl start mongod

✅ 优点:快、稳定、无需导出


四、方式三:使用 mongodump / mongorestore(推荐跨版本)

适合:版本不同、云迁移

1. 导出(老机器)

mongodump --out=/data/backup

2. 拷贝

scp -r /data/backup root@新IP:/data/

3. 导入(新机器)

mongorestore /data/backup

✅ 可选参数:

mongodump --username admin --password xxx --authenticationDatabase admin

五、副本集迁移(进阶)

如果是 副本集:

  1. 先加新节点
  2. 等数据同步完成
  3. 下线老节点

六、常见问题

❌ 启动失败

chown -R mongod:mongod /var/lib/mongo

❌ 权限错误

getenforce
# 如果是 Enforcing
setenforce 0

❌ 端口不通

firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload

七、总结建议

场景 推荐方式
同机换盘 拷贝 dbPath
同版本跨机 直接拷贝数据目录
不同版本 mongodump
云迁移 mongodump + 云存储

如果你愿意,可以告诉我:

  • CentOS 版本
  • MongoDB 版本
  • 是否副本集
  • 是否上云

我可以给你 一步到位的具体命令。

0 踩