Mongodump和Mongorestore是MongoDB數據庫自帶的備份恢復工具。您可以在本地設備或ECS實例中安裝MongoDB數據庫,然后借助該工具將自建MongoDB數據庫遷移至阿里云MongoDB副本集實例。
推薦使用DTS遷移副本集架構的自建MongoDB數據庫上云,可實現不停機遷移上云。
更多數據遷移/同步場景的解決方案,請參見數據遷移和同步方案概覽。
前提條件
- 請確保安裝的Mongodump和Mongorestore軟件版本與自建MongoDB數據庫的版本一致。安裝步驟請參見官方文檔Install MongoDB。 說明 您也可以直接在自建MongoDB數據庫所屬的服務器上執行Mongodump和Mongorestore命令,無需安裝。
- 副本集實例的存儲空間應大于自建MongoDB數據庫已占用的存儲空間。如存儲空間不足,您可以升級存儲空間,詳情請參見變更配置方案概覽。
注意事項
- 該操作為全量數據遷移。為保障數據一致性,遷移操作開始前請停止自建數據庫的相關業務,并停止數據寫入。
- 如果您之前使用Mongodump命令對數據庫進行過備份操作,請將dump文件夾中的備份文件移動至其他目錄并確保dump文件夾為空,否則執行備份操作將會覆蓋該文件夾中的歷史備份文件。
- 請在數據庫服務器上執行Mongodump和Mongorestore命令,并非在Mongo Shell環境下執行。
步驟一:備份自建數據庫
- 在自建MongoDB數據庫所屬的服務器中執行以下命令,備份所有數據庫的數據。
mongodump --host <mongodb_host> --port <port> -u <username> --authenticationDatabase <database>
說明- <mongodb_host>:自建MongoDB數據庫的服務器地址,本機可使用127.0.0.1。
- <port>:數據庫服務的端口號,默認為27017。
- <username>:自建MongoDB數據庫的數據庫賬號,本文以test為示例賬號。
- <database>:鑒權數據庫名,即數據庫賬號所屬的數據庫。
示例:
mongodump --host 127.0.0.1 --port 27017 -u test --authenticationDatabase admin
- 當命令行提示
Enter password:
時,輸入數據庫賬號對應的密碼并按回車鍵確認,即開始執行備份操作。說明 輸入密碼時,密碼字符是不可見的。
等待備份完成,自建數據庫中的數據即備份至當前目錄下的dump文件夾中。
步驟二:將數據遷移至阿里云
- 獲取副本集實例Primary節點的公網或內網連接地址,詳情請參見副本集實例連接說明。 說明 公網連接地址需要手動申請,詳情請參見申請公網連接地址。
- 將自建數據庫所屬服務器的IP地址加入至副本集實例的白名單中,詳情請參見設置白名單。說明
- 通過內網地址連接副本集實例時,您需要將自建數據庫所屬ECS的內網IP地址加入至副本集實例的白名單中。
- 通過公網地址連接副本集實例時,將需要將自建數據庫所屬本地服務器的公網IP地址加入至副本集實例的白名單中。
- 在自建數據庫服務器上執行以下語句,將備份的數據全部遷移至副本集實例。
mongorestore --host <Primary_host> -u <username> --authenticationDatabase <database> <Backup directory>
說明- <Primary_host>:副本集實例中Primary節點的連接地址。
- <username>:副本集實例的數據庫賬號,初始賬號為root。
- <database>:鑒權數據庫名,即數據庫賬號所屬的數據庫。當數據庫賬號為root時,對應的數據庫為admin。
- <Backup directory>:備份文件存儲的目錄,默認為dump。
示例:
數據庫賬號為test,所屬數據庫為admin。
mongorestore --host dds-bp19f409d7512****-pub.mongodb.rds.aliyuncs.com:3717 -u test --authenticationDatabase admin dump
- 當命令行提示
Enter password:
時,輸入副本集實例的數據庫賬號對應的密碼并按回車鍵確認,即開始執行數據遷移操作。說明 輸入密碼時,密碼字符是不可見的。
等待數據遷移完成,根據業務需求選擇合適的時間,將業務切換至副本集實例。