全部產品
Search
文件中心

ApsaraDB for MongoDB:使用MongoDB工具將自建資料庫遷移至分區叢集執行個體

更新時間:Jun 19, 2024

Mongodump和Mongorestore是MongoDB資料庫內建的備份恢複工具。您可以在本地裝置或ECS執行個體中安裝MongoDB資料庫,然後藉助該工具將自建MongoDB資料庫遷移至阿里雲MongoDB分區叢集執行個體。

背景資訊

前提條件

  • 請確保安裝的Mongodump和Mongorestore軟體版本與自建MongoDB資料庫的版本一致。安裝步驟請參見官方文檔Install MongoDB
    說明 您也可以直接在自建MongoDB資料庫所屬的伺服器上執行Mongodump和Mongorestore命令,無需安裝。
  • 目標分區叢集執行個體的儲存空間應大於自建MongoDB資料庫已佔用的儲存空間。如儲存空間不足,您可以升級儲存空間,詳情請參見變更配置方案概覽

注意事項

  • 該操作為全量資料移轉。為保障資料一致性,遷移操作開始前請停止自建資料庫的相關業務,並停止資料寫入。
  • 如果您之前使用Mongodump命令對資料庫進行過備份操作,請將dump檔案夾中的備份檔案移動至其他目錄並確保dump檔案夾為空白,否則執行備份操作將會覆蓋該檔案夾中的歷史備份檔案。
  • 請在資料庫伺服器上執行Mongodump和Mongorestore命令,並非在Mongo Shell環境下執行。

步驟一:備份自建資料庫

  1. 在自建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
  2. 當命令列提示Enter password:時,輸入資料庫帳號對應的密碼並按斷行符號鍵確認,即開始執行備份操作。

等待備份完成,自建資料庫中的資料即備份至目前的目錄下的dump檔案夾中。

步驟二:設定資料分區(可選)

沒有設定資料分區的情況下,資料將被集中寫入到Primary Shard節點中,導致其他Shard節點的儲存空間和計算效能無法被充分利用。如需設定請參見設定資料分區

說明 您可以在遷移前,在目標MongoDB執行個體中建立需要資料分區的資料庫和集合,配置資料分區。也可以在遷移後配置資料分區。

步驟三:將資料移轉至阿里雲

  1. 擷取任一Mongos節點的公網或內網串連地址,詳情請參見分區叢集執行個體串連說明
    說明 公網串連地址需要手動申請,詳情請參見申請公網串連地址
  2. 將自建資料庫所屬伺服器的IP地址加入至分區叢集執行個體的白名單中,詳情請參見設定白名單
    說明
    • 通過專用網路或傳統網路串連分區叢集執行個體時,您需要將自建資料庫所屬ECS的內網IP地址加入至分區叢集執行個體的白名單中。
    • 通過公網地址串連分區叢集執行個體時,將需要將自建資料庫所屬本機伺服器的公網IP地址加入至分區叢集執行個體的白名單中。
  3. 在自建資料庫伺服器上執行以下語句,將備份的資料全部遷移至分區叢集執行個體。
    mongorestore --host <Mongos_host>  -u <username> --authenticationDatabase <database> <Backup directory>
    說明
    • <Mongos_host>:分區叢集執行個體中任一Mongos節點的串連地址。
    • <username>:分區叢集執行個體的資料庫帳號,初始帳號為root。
    • <database>:鑒權資料庫名,即資料庫帳號所屬的資料庫。當資料庫帳號為root時,對應的資料庫為admin。
    • <Backup directory>:備份檔案儲存的目錄,預設為dump

    樣本:

    資料庫帳號為test,所屬資料庫為admin。

    mongorestore --host s-bp19f409d7512****-pub.mongodb.rds.aliyuncs.com:3717 -u test --authenticationDatabase admin dump
  4. 在命令列提示Enter password:時,輸入分區叢集執行個體的資料庫帳號對應的密碼並按斷行符號鍵確認,即開始執行資料移轉操作。
    說明 輸入密碼時,密碼字元是不可見的。

等待資料移轉完成,根據業務需求選擇合適的時間,將業務切換至分區叢集執行個體。