使用MongoDB數據庫自帶的備份還原工具mongodump和mongorestore,您可以將騰訊云MongoDB副本集實例全量遷移至阿里云。
背景信息
當您因業務調整或需要使用阿里云MongoDB特性功能時,您可以使用MongoDB自帶的備份還原工具( mongodump 和 mongorestore),通過全量數據遷移方法,將騰訊云MongoDB數據庫遷移至阿里云MongoDB數據庫。
前提條件
注意事項
- 該操作為全量遷移,遷移開始前需要停止騰訊云MongoDB數據庫的相關業務,同時為了保障數據一致性,全量數據遷移期間請勿在騰訊云MongoDB數據庫中寫入新的數據。
- 為避免影響您的業務使用,請在業務低峰期進行數據遷移操作。
- 如果您之前使用mongodump命令對數據庫進行過備份操作,請將備份在dump文件夾下的文件移動至其他目錄。確保dump文件夾為空,否則執行備份的操作會覆蓋該文件夾下的原有備份文件。
- 阿里云MongoDB實例支持的版本與存儲引擎請參見版本及存儲引擎,如需跨版本或跨引擎遷移,請提前確認兼容性。
數據庫賬號權限要求
遷移對象 | 權限要求 |
---|---|
騰訊云MongoDB實例 | 待遷移庫的read權限 |
阿里云MongoDB實例 | 目標庫的readWrite權限 |
操作步驟
由于騰訊云MongoDB實例只有內網連接地址,沒有公網連接地址。此時需要創建一個具有公網地址的騰訊云服務器用作端口數據轉發,以完成數據庫的遷移操作。遷移操作完成后如不再需要,可釋放騰訊云服務器。
- 創建騰訊云服務器。本案例中創建的騰訊云服務器使用的是Linux操作系統。 說明 為保障騰訊云服務器和騰訊云MongoDB副本集實例的正常通信,騰訊云服務器的地域、可用區、私有網絡和子網需配置與騰訊云MongoDB副本集實例一致。
- 登錄騰訊云服務器,安裝MongoDB程序,詳情請參見安裝MongoDB。 說明 請確保安裝的MongoDB程序的軟件版本與騰訊云MongoDB數據庫的版本一致。
- 返回騰訊云服務器控制臺,在左側導航欄,單擊安全組。
- 在入站規則頁簽,單擊添加規則,放通MongoDB數據庫端口27017,允許外網訪問該端口。
- 進入騰訊云MongoDB控制臺,單擊目標MongoDB實例名。
- 單擊安全組頁簽,并單擊配置安全組。
- 在彈出的配置安全組對話框,選擇已放通27017端口的安全組,并單擊確認。
- 進入騰訊云MongoDB控制臺,獲取騰訊云MongoDB實例的內網IP地址。
- 登錄騰訊云服務器,并執行以下命令進行數據備份,將數據備份至該服務器上。
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
- 命令行提示
Enter password:
時,輸入數據庫賬號對應的密碼,數據庫開始備份。說明 等待備份完成,數據將備份至當前目錄下dump文件夾中。 - 在騰訊云控制臺,獲取騰訊云服務器的公網IP地址。
- 登錄阿里云MongoDB控制臺,將騰訊云服務器的公網IP地址加入到阿里云MongoDB實例的白名單中。詳情請參見設置白名單。
- 獲取阿里云MongoDB實例的公網連接地址。
- 如需遷移至阿里云MongoDB副本集實例,請獲取Primary節點公網連接地址,詳情請參見副本集實例連接說明。
- 如需遷移至阿里云MongoDB分片集群實例,請獲取任一Mongos節點的公網連接地址,詳情請參見分片集群實例連接說明。
說明 公網連接地址需要手動申請,詳情請參見申請公網連接地址。 - 在騰訊云服務器上執行以下命令將數據導入至阿里云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
- 命令行提示
Enter password:
時,輸入數據庫賬號對應的密碼,數據庫開始導入。說明 等待備份完成,數據將導入至阿里云MongoDB數據庫中。 - 根據業務需求選擇合適的時間,將業務切換至阿里云MongoDB實例中。