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:
時,輸入複本集執行個體的資料庫帳號對應的密碼並按斷行符號鍵確認,即開始執行資料移轉操作。說明 輸入密碼時,密碼字元是不可見的。
等待資料移轉完成,根據業務需求選擇合適的時間,將業務切換至複本集執行個體。