Linux環境下MongoDB數據遷移主要有以下兩種常用方式:
mongodump --host <源主機> --port <源端口> --db <數據庫名> --out /備份路徑
mongodump --host 192.168.1.100 --port 27017 --db mydb --out /data/backup
mongodump --host <源主機> --port <源端口> --db <數據庫名> --collection <集合名> --out /備份路徑
mongodump --host 192.168.1.100 --port 27017 --db mydb --collection users --out /data/backup
mongorestore --host <目標主機> --port <目標端口> --db <目標數據庫名> /備份路徑/<數據庫名>
mongorestore --host 192.168.1.200 --port 27017 --db newdb /data/backup/mydb
mongorestore --host <目標主機> --port <目標端口> --db <目標數據庫名> --collection <集合名> /備份路徑/<數據庫名>/<集合名>.bson
mongorestore --host 192.168.1.200 --port 27017 --db newdb --collection users /data/backup/mydb/users.bson
--drop
參數覆蓋)。sudo systemctl stop mongod # Systemd系統
# 或 sudo service mongod stop # Init系統
使用rsync
將源服務器的MongoDB數據目錄(默認/var/lib/mongodb
)同步到目標服務器:
sudo rsync -avz --progress /var/lib/mongodb/ <目標用戶>@<目標IP>:/var/lib/mongodb/
sudo systemctl start mongod # Systemd系統
# 或 sudo service mongod start # Init系統
通過mongo
客戶端連接目標服務器,查詢數據是否完整:
mongo --host <目標IP> --port 27017
> use <數據庫名>
> db.<集合名>.find()
選擇建議:
mongodump/mongorestore
,支持靈活選擇數據庫/集合,無需停機。