温馨提示×

如何在Debian迁移MongoDB

小樊
36
2026-08-02 05:20:03
栏目: 云计算

在 Debian 系统上迁移 MongoDB,常见场景包括迁移到另一台 Debian 服务器升级版本迁移数据目录。下面按通用、可靠的方式给你一个完整指南,适用于大多数生产/测试环境。


一、迁移前准备

1. 确认当前 MongoDB 信息

mongod --version
mongo --version

查看数据目录和配置文件:

cat /etc/mongod.conf

重点关注:

  • storage.dbPath(数据目录,默认 /var/lib/mongodb
  • systemLog.path
  • net.port

2. 备份数据(强烈建议)

无论哪种迁移方式,先备份

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

或指定数据库:

mongodump --db mydb --out /backup/mongodb/

二、方式一:使用 mongodump / mongorestore(最通用 ✅)

适用场景

  • 跨服务器
  • 升级 MongoDB 版本
  • 不同架构

1. 在源服务器导出数据

mongodump --out /backup/mongodb

拷贝到目标服务器:

scp -r /backup/mongodb user@target:/backup/mongodb

2. 在目标服务器安装 MongoDB

导入 MongoDB 官方 GPG 和源(示例为 6.0):

curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | \
gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg

echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] \
https://repo.mongodb.org/apt/debian $(lsb_release -cs)/mongodb-org/6.0 main" \
| tee /etc/apt/sources.list.d/mongodb-org-6.0.list

apt update
apt install -y mongodb-org

3. 启动 MongoDB

systemctl start mongod
systemctl enable mongod

4. 恢复数据

mongorestore /backup/mongodb

恢复指定库:

mongorestore --db mydb /backup/mongodb/mydb

三、方式二:直接拷贝数据目录(速度快 ⚠️)

适用场景

  • 同版本 MongoDB
  • 同架构(x86_64 → x86_64)

1. 停止 MongoDB

systemctl stop mongod

2. 拷贝数据目录

rsync -av /var/lib/mongodb/ target:/var/lib/mongodb/

拷贝配置文件(可选):

scp /etc/mongod.conf target:/etc/mongod.conf

3. 在目标服务器设置权限

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

4. 启动 MongoDB

systemctl start mongod

四、迁移配置文件(如有)

常见需要同步的内容:

/etc/mongod.conf

以及:

  • systemd 服务(一般不用手动迁移)
  • 认证用户:admin 库会随数据一起迁移

五、迁移后检查

1. 检查服务状态

systemctl status mongod

2. 登录 MongoDB

mongosh
# 或
mongo

3. 验证数据

show dbs
db.stats()

六、常见问题

❌ 数据目录权限错误

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

❌ MongoDB 无法启动

查看日志:

journalctl -u mongod
cat /var/log/mongodb/mongod.log

❌ 版本不兼容

  • 不要直接拷贝低版本数据到高版本 MongoDB
  • 建议:先 mongodump,再 mongorestore

七、推荐迁移方案总结

场景 推荐方式
跨服务器 mongodump + mongorestore ✅
升级版本 mongodump + mongorestore ✅
同版本、同架构 拷贝数据目录 ⚡
生产环境 先备份,再迁移 ✅

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

  • Debian 版本(10 / 11 / 12)
  • MongoDB 版本
  • 是否在用 副本集 / 认证 / Docker

我可以给你精确到命令级别的迁移方案

0