在Linux上遷移MongoDB數據庫可以通過以下幾種方法進行:
這是最常用的數據遷移方法,適用于大多數情況。
備份數據:
使用mongodump命令備份數據。例如,備份名為mydb的數據庫:
mongodump --db mydb
這將創建一個名為mydb的文件夾,并在其中保存備份數據。
將備份文件傳輸到目標服務器:
使用scp或其他文件傳輸工具將備份文件傳輸到目標服務器。例如:
scp -r /path/to/backup user@target_server:/path/to/destination
恢復數據:
在目標服務器上使用mongorestore命令恢復備份數據。例如:
mongorestore --db mydb /path/to/backup/mydb
這將從備份數據中恢復mydb數據庫。
這種方法適用于導出為JSON或CSV格式的數據,然后導入到另一個MongoDB實例。
導出數據:
使用mongoexport命令導出數據。例如:
mongoexport --host <source_host> --port <source_port> --db <source_db> --collection <collection_name> --out /path/to/export.json
導入數據:
使用mongoimport命令導入數據。例如:
mongoimport --host <target_host> --port <target_port> --db <target_db> --collection <collection_name> --file /path/to/export.json
這種方法適用于在同一臺機器上或者不同機器之間進行物理文件的遷移。
停止源MongoDB實例:
sudo systemctl stop mongod
使用rsync同步數據文件:
sudo rsync -avz --progress /var/lib/mongodb/ /path/to/target/mongodb/
修改目標MongoDB實例的配置文件,確保數據目錄指向新的位置。
啟動目標MongoDB實例:
sudo systemctl start mongod
對于需要實時同步數據的情況,可以使用DTS(Data Transmission Service)進行不停機遷移。
配置遷移任務: 在DTS中配置遷移任務,選擇全量數據遷移和增量數據遷移。
啟動遷移任務: 啟動遷移任務后,DTS會自動進行數據遷移,源數據庫正常提供服務。