在 Debian 上迁移 MongoDB,常见场景有几种,我按最常用、最稳妥的方式来说明。你可以根据自己的情况选择。
| 场景 | 推荐方式 |
|---|---|
| 同版本 / 升级版本 | mongodump + mongorestore |
| 大数据量 / 高可用 | 副本集(Replica Set) |
| 云服务迁移 | 云厂商工具(如 Atlas Live Migration) |
| 物理机 → 物理机 | 直接拷贝数据目录(风险较高) |
✅ 最通用、最安全:mongodump + mongorestore
sudo apt update
sudo apt install mongodb-org-tools
mongodump --out /data/mongodb_backup
可选(指定用户、端口):
mongodump -u admin -p password --authenticationDatabase admin -o /data/mongodb_backup
tar -czvf mongodb_backup.tar.gz /data/mongodb_backup
scp mongodb_backup.tar.gz user@new_server_ip:/data/
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | \
sudo 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 bookworm/mongodb-org/6.0 main" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install -y mongodb-org
启动 MongoDB:
sudo systemctl enable mongod
sudo systemctl start mongod
tar -xzvf mongodb_backup.tar.gz
mongorestore /data/mongodb_backup
指定用户恢复:
mongorestore -u admin -p password --authenticationDatabase admin /data/mongodb_backup
mongosh
show dbs
适合:
mongosh
rs.initiate()
rs.add("new_server_ip:27017")
rs.status()
rs.stepDown()
rs.remove("old_server_ip:27017")
✅ 业务几乎无感知
⚠️ 风险高,仅适用于:
systemctl stop mongod
cp -a /var/lib/mongodb /new/path
systemctl start mongod
你可以告诉我:
mongod --version)cat /etc/os-release)我可以给你一份完全贴合你环境的迁移方案。