MongodumpMongorestoreMongoDB數據庫自帶的備份恢復工具。您可以在本地設備或ECS實例中安裝MongodumpMongorestore(也可以安裝MongoDB數據庫)工具,然后使用這些工具將MongoDB Atlas數據庫遷移至阿里云數據庫MongoDB。

說明 本文以本地設備為例介紹操作流程。

注意事項

  • 確保安裝的MongodumpMongorestore軟件版本與MongoDB Atlas數據庫的版本一致。安裝步驟請參見官方文檔Install MongoDB
  • MongoDB實例支持的版本與存儲引擎請參見版本及存儲引擎,如需跨版本或跨引擎遷移,請提前確認兼容性。
  • 通過MongoDB工具遷移MongoDBAtlas數據庫為全量數據遷移。為保障數據一致性,遷移操作開始前請停止源庫的相關業務,并停止數據寫入。
  • 執行mongodump備份命令將覆蓋dump文件夾中的歷史備份文件。如果您之前使用mongodump命令對源庫執行過備份操作,請將dump文件夾中的備份文件移動至其他目錄并確保dump文件夾為空。
  • 必須在安裝有MongoDB數據庫的服務器上執行mongodumpmongorestore命令,而不是在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實例的公網連接地址。
    • 如要遷移至阿里云MongoDB副本集實例,請獲取Primary節點公網連接地址,詳情請參見副本集實例連接說明
    • 如要遷移至阿里云MongoDB分片集群實例,請獲取任一Mongos節點的公網連接地址,詳情請參見分片集群實例連接說明
    說明 公網連接地址需要手動申請,詳情請參見申請公網連接地址
  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>:數據庫備份文件所在的目錄。

    示例:

    恢復數據庫備份文件中的mongodbtest數據庫
    mongorestore --host dds-bp**********-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -d mongodbtest /dump/mongodbtest
    恢復數據庫備份文件中的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數據庫中。