Mongodump和Mongorestore是MongoDB資料庫內建的備份恢複工具。您可以在本地裝置或ECS執行個體中安裝MongoDB資料庫,然後藉助該工具將自建MongoDB資料庫遷移至阿里雲MongoDB執行個體。
推薦使用DTS遷移單節點架構的自建MongoDB資料庫上雲,可實現不停機遷移上雲,操作步驟,請參見ApsaraDB for MongoDB(單節點架構)全量遷移至ApsaraDB for MongoDB(所有架構)。
更多資料移轉或同步情境的解決方案,請參見資料移轉和同步方案概覽。
前提條件
請確保安裝的Mongodump和Mongorestore軟體版本與自建MongoDB資料庫的版本一致。安裝步驟請參見官方文檔Install MongoDB。
說明您也可以直接在自建MongoDB資料庫所屬的伺服器上執行Mongodump和Mongorestore命令,無需安裝。
為保障相容性,自建MongoDB資料庫的版本需為3.0及以上版本。
說明阿里雲MongoDB執行個體支援的儲存引擎請參見版本及儲存引擎,如需跨版本或跨引擎遷移,請提前確認相容性。
單節點執行個體的儲存空間應大於自建MongoDB資料庫已佔用的儲存空間。如儲存空間不足,您可以升級儲存空間,詳情請參見變更配置方案概覽。
注意事項
該操作為全量資料移轉。為保障資料一致性,遷移操作開始前請停止自建資料庫的相關業務,並停止資料寫入。
如果您之前使用Mongodump命令對資料庫進行過備份操作,請將dump檔案夾中的備份檔案移動至其他目錄並確保dump檔案夾為空白,否則執行備份操作將會覆蓋該檔案夾中的歷史備份檔案。
請在自建MongoDB資料庫伺服器上執行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檔案夾中。
步驟二:將資料移轉至阿里雲
擷取阿里雲MongoDB執行個體Primary節點的串連地址。
登入MongoDB管理主控台。
在頁面左上方,選擇執行個體所屬的地區。
在左側導覽列,單擊複本集執行個體列表。
找到目標執行個體,單擊執行個體ID。
在左側導覽列,單擊資料庫連接,即可查看資料庫連接資訊。
將自建資料庫所屬伺服器的IP地址加入至MongoDB執行個體的白名單中,詳情請參見設定白名單。
說明通過專用網路串連阿里雲MongoDB執行個體時,您需要將自建資料庫所屬ECS的內網IP地址加入至阿里雲MongoDB執行個體的白名單中。
通過公網地址串連阿里雲MongoDB執行個體時,將需要將自建資料庫所屬本機伺服器的公網IP地址加入至阿里雲MongoDB執行個體的白名單中。
在自建資料庫伺服器上執行以下語句,將備份的資料全部遷移至阿里雲MongoDB執行個體。
mongorestore --host <Primary_host> -u <username> --authenticationDatabase <database> <Backup directory>
說明<Primary_host>:阿里雲MongoDB執行個體中Primary節點的串連地址。
<username>:阿里雲MongoDB執行個體的資料庫帳號,初始帳號為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:
時,輸入阿里雲MongoDB執行個體資料庫帳號對應的密碼並按斷行符號鍵確認,即開始執行資料移轉操作。說明輸入密碼時,密碼字元是不可見的。
如果忘記了root帳號的密碼,您可以通過設定密碼的方式來重設密碼。
等待資料移轉完成,根據業務需求選擇合適的時間,將業務切換至阿里雲MongoDB執行個體。
更多資訊
資料庫遷移至阿里雲MongoDB執行個體後,您可以執行串連資料庫、管理資料庫和資料庫帳號等操作。