全部產品
Search
文件中心

ApsaraDB for MongoDB:使用MongoDB工具將MongoDB Atlas遷移至阿里雲

更新時間:Jun 19, 2024

Mongodump和Mongorestore是MongoDB資料庫內建的備份恢複工具。您可以在本地裝置或ECS執行個體中安裝Mongodump和Mongorestore(也可以安裝MongoDB資料庫)工具,然後使用這些工具將MongoDB Atlas資料庫遷移至ApsaraDB for MongoDB。

說明 本文以本地裝置為例介紹操作流程。

注意事項

  • 確保安裝的Mongodump和Mongorestore軟體版本與MongoDB Atlas資料庫的版本一致。安裝步驟請參見官方文檔Install MongoDB
  • MongoDB執行個體支援的版本與儲存引擎請參見版本及儲存引擎,如需跨版本或跨引擎遷移,請提前確認相容性。
  • 通過MongoDB工具遷移MongoDBAtlas資料庫為全量資料移轉。為保障資料一致性,遷移操作開始前請停止源庫的相關業務,並停止資料寫入。
  • 執行mongodump備份命令將覆蓋dump檔案夾中的歷史備份檔案。如果您之前使用mongodump命令對源庫執行過備份操作,請將dump檔案夾中的備份檔案移動至其他目錄並確保dump檔案夾為空白。
  • 必須在安裝有MongoDB資料庫的伺服器上執行mongodump和mongorestore命令,而不是在Mongo Shell環境下執行。

資料庫帳號許可權要求

資料庫帳號許可權
MongoDB Atlas執行個體待遷移庫的read許可權
阿里雲MongoDB執行個體目標庫的readWrite許可權

準備工作

阿里雲MongoDB管理主控台完成以下準備工作:

  1. 建立阿里雲MongoDB執行個體,詳情請參見棄置站台集執行個體建立分區叢集執行個體
    說明
    • 阿里雲MongoDB執行個體的儲存空間要大於MongoDB Atlas的儲存空間。
    • 如需遷移至阿里雲MongoDB分區叢集執行個體,建議對資料進行分區,詳情請參見設定資料分區
  2. 設定阿里雲MongoDB執行個體的資料庫密碼,詳情請參見重設密碼
    說明 如果您在建立執行個體時設定了資料庫密碼,可跳過本步驟。

在本地裝置上成以下準備工作:

  1. 安裝MongoDB資料庫,詳情請參見安裝MongoDB
    說明
    • 該裝置僅作為資料備份與恢複的臨時中轉平台,遷移操作完成後不再需要。
    • 備份目錄所在分區的可用磁碟空間要大於MongoDB Atlas資料庫的已用儲存空間。
  2. 將本地裝置的公網IP地址加入至阿里雲MongoDB執行個體的白名單中,詳情請參見修改白名單

操作步驟

  1. 登入MongoDB Atlas資料庫控制台。
  2. 將用於資料移轉的本地裝置的公網IP地址,加入至MongoDB Atlas執行個體的白名單中。Atlas MongoDB白名單配置
  3. Clusters頁面,單擊 Clusters 的名稱。Clusters名稱
  4. Command Line Tools頁簽,單擊mongodump命令後的COPY,複製包含MongoDB Atlas資料庫連接資訊的mongodump命令。複製包含串連資訊的mongodump命令
  5. 在本地裝置上,備份MongoDB Atlas資料庫。
    1. 在本地裝置上,粘貼包含MongoDB Atlas資料庫連接資訊的mongodump命令。
    2. 將<PASSWORD>替換為所使用的資料庫帳號密碼,將<DATABASE>替換為要備份的資料庫名稱。
    3. 執行該命令,等待資料備份完畢。
  6. 登入阿里雲MongoDB控制台,擷取阿里雲MongoDB執行個體的公網串連地址。
    說明 公網串連地址需要手動申請,詳情請參見申請公網串連地址
  7. 在本地裝置上,執行以下命令將資料庫資料匯入至阿里雲MongoDB資料庫。
    mongorestore --host <mongodb_host>:3717 --authenticationDatabase admin -u <username> -d <database> <database_backupfile_directory>
    說明
    • <mongodb_host>:阿里雲MongoDB複本集執行個體的Primary節點或阿里雲MongoDB分區叢集執行個體的Mongos節點串連地址。
    • <username>:阿里雲MongoDB執行個體的資料庫帳號,本文以test為樣本帳號。
    • <database>:需要恢複的資料庫。備份檔案中如有多個資料庫,需要重複本步驟進行其它資料庫的恢複。
    • <database_backupfile_directory>:Database Backup檔案所在的目錄。

    樣本:

    恢複Database Backup檔案中的mongodbtest資料庫
    mongorestore --host dds-bp**********-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -d mongodbtest /dump/mongodbtest
    恢複Database Backup檔案中的test123資料庫
    mongorestore --host dds-bp**********-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -d test123 /dump/test123
  8. 當命令列提示 Enter password:時,輸入阿里雲MongoDB資料庫帳號對應的密碼並按斷行符號鍵確認。

等待資料恢複完成,MongoDB Atlas資料庫即遷移至阿里雲MongoDB資料庫中。