在 Debian 上迁移 MongoDB,通常分为同机迁移数据目录、迁移到另一台 Debian 服务器、或升级迁移。下面按常见场景给你一套清晰做法。
mongo
> use admin
> db.fsyncLock()
(迁移完成后记得 db.fsyncUnlock())
或直接停服务:
sudo systemctl stop mongod
mongodump --out /backup/mongo-$(date +%F)
sudo systemctl stop mongod
默认数据目录:
/var/lib/mongodb
复制:
sudo cp -a /var/lib/mongodb /new/path/mongodb
sudo nano /etc/mongod.conf
修改:
storage:
dbPath: /new/path/mongodb
sudo chown -R mongodb:mongodb /new/path/mongodb
sudo systemctl start mongod
mongodump --out /tmp/mongo-backup
scp -r /tmp/mongo-backup user@target:/tmp/
(Debian 12 示例)
sudo apt update
sudo apt install -y mongodb-org
mongorestore /tmp/mongo-backup
sudo systemctl start mongod
mongo
> show dbs
如果是生产环境:
适合:
docker cp mongo_container:/data/db ./mongo-data
复制到新机器后:
docker run -v $(pwd)/mongo-data:/data/db mongo
sudo chown -R mongodb:mongodb /var/lib/mongodb
mongodump / mongorestore 最安全journalctl -u mongod -xe
如果你能告诉我:
我可以给你更精确的迁移方案。