使用MongoDB數據庫自帶的備份還原工具mongodumpmongorestore,您可以將騰訊云MongoDB副本集實例全量遷移至阿里云。

背景信息

當您因業務調整或需要使用阿里云MongoDB特性功能時,您可以使用MongoDB自帶的備份還原工具( mongodump 和 mongorestore),通過全量數據遷移方法,將騰訊云MongoDB數據庫遷移至阿里云MongoDB數據庫。

前提條件

  • mongodumpmongorestore的軟件版本,與騰訊云MongoDB數據庫的版本一致。
  • 已創建阿里云MongoDB實例。如果尚未創建,請參見創建副本集實例創建分片集群實例
    說明 阿里云MongoDB實例的存儲空間應大于騰訊云MongoDB副本集實例已使用的存儲空間。如果創建的阿里云MongoDB實例存儲空間過低,您需要升級存儲空間,詳情請參見變更配置
  • 如需遷移至阿里云MongoDB分片集群實例,建議對數據進行分片以更好地發揮性能,詳情請參見設置數據分片

注意事項

  • 該操作為全量遷移,遷移開始前需要停止騰訊云MongoDB數據庫的相關業務,同時為了保障數據一致性,全量數據遷移期間請勿在騰訊云MongoDB數據庫中寫入新的數據。
  • 為避免影響您的業務使用,請在業務低峰期進行數據遷移操作。
  • 如果您之前使用mongodump命令對數據庫進行過備份操作,請將備份在dump文件夾下的文件移動至其他目錄。確保dump文件夾為空,否則執行備份的操作會覆蓋該文件夾下的原有備份文件。
  • 阿里云MongoDB實例支持的版本與存儲引擎請參見版本及存儲引擎,如需跨版本或跨引擎遷移,請提前確認兼容性。

數據庫賬號權限要求

遷移對象權限要求
騰訊云MongoDB實例待遷移庫的read權限
阿里云MongoDB實例目標庫的readWrite權限

操作步驟

由于騰訊云MongoDB實例只有內網連接地址,沒有公網連接地址。此時需要創建一個具有公網地址的騰訊云服務器用作端口數據轉發,以完成數據庫的遷移操作。遷移操作完成后如不再需要,可釋放騰訊云服務器。

  1. 創建騰訊云服務器。本案例中創建的騰訊云服務器使用的是Linux操作系統。
    說明 為保障騰訊云服務器和騰訊云MongoDB副本集實例的正常通信,騰訊云服務器的地域、可用區、私有網絡和子網需配置與騰訊云MongoDB副本集實例一致。
  2. 登錄騰訊云服務器,安裝MongoDB程序,詳情請參見安裝MongoDB
    說明 請確保安裝的MongoDB程序的軟件版本與騰訊云MongoDB數據庫的版本一致。
  3. 返回騰訊云服務器控制臺,在左側導航欄,單擊安全組
  4. 入站規則頁簽,單擊添加規則,放通MongoDB數據庫端口27017,允許外網訪問該端口。 安全組配置
  5. 進入騰訊云MongoDB控制臺,單擊目標MongoDB實例名。
  6. 單擊安全組頁簽,并單擊配置安全組
  7. 在彈出的配置安全組對話框,選擇已放通27017端口的安全組,并單擊確認
  8. 進入騰訊云MongoDB控制臺,獲取騰訊云MongoDB實例的內網IP地址。查看MongoDB實例的內網IP地址
  9. 登錄騰訊云服務器,并執行以下命令進行數據備份,將數據備份至該服務器上。
    mongodump --host <host>:27017 -u <username> --authenticationDatabase admin
    說明
    • <host>:騰訊云MongoDB實例的內網IP地址。
    • <username>:連接騰訊云MongoDB數據庫的賬號,默認為mongouser。
    示例:
    mongodump --host 10.10.0.7:27017 -u mongouser --authenticationDatabase admin
  10. 命令行提示Enter password:時,輸入數據庫賬號對應的密碼,數據庫開始備份。
    說明 等待備份完成,數據將備份至當前目錄下dump文件夾中。
  11. 在騰訊云控制臺,獲取騰訊云服務器的公網IP地址。查看云服務器的公網IP地址
  12. 登錄阿里云MongoDB控制臺,將騰訊云服務器的公網IP地址加入到阿里云MongoDB實例的白名單中。詳情請參見設置白名單
  13. 獲取阿里云MongoDB實例的公網連接地址。
    • 如需遷移至阿里云MongoDB副本集實例,請獲取Primary節點公網連接地址,詳情請參見副本集實例連接說明
    • 如需遷移至阿里云MongoDB分片集群實例,請獲取任一Mongos節點的公網連接地址,詳情請參見分片集群實例連接說明
    說明 公網連接地址需要手動申請,詳情請參見申請公網連接地址
  14. 在騰訊云服務器上執行以下命令將數據導入至阿里云MongoDB數據庫。
    mongorestore --host <mongodb_host>:3717 -u <username> -d <database>  <dir> --authenticationDatabase admin
    說明
    • <mongodb_host>:阿里云MongoDB實例的公網連接地址。(不包含端口號)
    • <username>:連接阿里云MongoDB實例的數據庫賬號,本文以test為示例賬號。
    • <database>:需要導入的數據庫。備份文件中如有多個數據庫,需要重復本步驟進行其它數據庫的導入。
    • <dir>:數據庫備份文件所在的目錄。

    示例:

    • 導入數據庫備份文件中的mongodbtest數據庫
      mongorestore --host dds-bpxxxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717 -u test --authenticationDatabase admin -d mongodbtest /dump/mongodbtest 
    • 導入數據庫備份文件中的test123數據庫
      mongorestore --host dds-bpxxxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717  -u test -authenticationDatabase admin -d test123 /dump/test123
  15. 命令行提示Enter password:時,輸入數據庫賬號對應的密碼,數據庫開始導入。
    說明 等待備份完成,數據將導入至阿里云MongoDB數據庫中。
  16. 根據業務需求選擇合適的時間,將業務切換至阿里云MongoDB實例中。

如何連接阿里云MongoDB數據庫