温馨提示×

debian mongodb怎么迁移

小樊
33
2026-09-26 15:49:33
栏目: 云计算

在 Debian 上迁移 MongoDB,通常分为同机迁移数据目录、迁移到另一台 Debian 服务器、或升级迁移。下面按常见场景给你一套清晰做法。


一、迁移前准备(通用)

1. 停止写入(重要)

mongo
> use admin
> db.fsyncLock()

(迁移完成后记得 db.fsyncUnlock())

或直接停服务:

sudo systemctl stop mongod

2. 备份(强烈建议)

mongodump --out /backup/mongo-$(date +%F)

二、同机迁移数据目录(更换磁盘)

1. 停止 MongoDB

sudo systemctl stop mongod

2. 复制数据目录

默认数据目录:

/var/lib/mongodb

复制:

sudo cp -a /var/lib/mongodb /new/path/mongodb

3. 修改配置

sudo nano /etc/mongod.conf

修改:

storage:
  dbPath: /new/path/mongodb

4. 修改权限

sudo chown -R mongodb:mongodb /new/path/mongodb

5. 启动

sudo systemctl start mongod

三、迁移到另一台 Debian 服务器(最常用)

源服务器

1. 导出数据

mongodump --out /tmp/mongo-backup

2. 传到目标服务器

scp -r /tmp/mongo-backup user@target:/tmp/

目标服务器

1. 安装 MongoDB

(Debian 12 示例)

sudo apt update
sudo apt install -y mongodb-org

2. 恢复数据

mongorestore /tmp/mongo-backup

3. 启动并验证

sudo systemctl start mongod
mongo
> show dbs

四、使用副本集 / 在线迁移(零停机)

如果是生产环境:

  1. 新服务器加入副本集
  2. 等待数据同步完成
  3. 切换主节点
  4. 移除旧节点

适合:

  • 大库
  • 不允许停机

五、Docker 方式迁移(如果你用 Docker)

docker cp mongo_container:/data/db ./mongo-data

复制到新机器后:

docker run -v $(pwd)/mongo-data:/data/db mongo

六、常见问题

1. 权限错误

sudo chown -R mongodb:mongodb /var/lib/mongodb

2. 版本不兼容

  • 跨大版本(如 4 → 6)先升级小版本
  • 使用 mongodump / mongorestore 最安全

3. 启动失败看日志

journalctl -u mongod -xe

如果你能告诉我:

  • 是否同机 / 跨服务器
  • MongoDB 版本
  • 数据量大小
  • 是否允许停机

我可以给你更精确的迁移方案。

0 踩