Mongodump和Mongorestore是MongoDB數據庫自帶的備份恢復工具。您可以在本地設備或ECS實例中安裝Mongodump和Mongorestore(也可以安裝MongoDB數據庫)工具,然后使用這些工具將MongoDB Atlas數據庫遷移至阿里云數據庫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管理控制臺完成以下準備工作:
- 創建阿里云MongoDB實例,詳情請參見創建副本集實例或創建分片集群實例。 說明
- 阿里云MongoDB實例的存儲空間要大于MongoDB Atlas的存儲空間。
- 如需遷移至阿里云MongoDB分片集群實例,建議對數據進行分片,詳情請參見設置數據分片。
- 設置阿里云MongoDB實例的數據庫密碼,詳情請參見重置密碼。 說明 如果您在創建實例時設置了數據庫密碼,可跳過本步驟。
在本地設備上成以下準備工作:
操作步驟
- 登錄MongoDB Atlas數據庫控制臺。
- 將用于數據遷移的本地設備的公網IP地址,加入至MongoDB Atlas實例的白名單中。
- 在Clusters頁面,單擊 Clusters 的名稱。
- 在Command Line Tools頁簽,單擊mongodump命令后的COPY,復制包含MongoDB Atlas數據庫連接信息的mongodump命令。
- 在本地設備上,備份MongoDB Atlas數據庫。
- 在本地設備上,粘貼包含MongoDB Atlas數據庫連接信息的mongodump命令。
- 將<PASSWORD>替換為所使用的數據庫賬號密碼,將<DATABASE>替換為要備份的數據庫名稱。
- 執行該命令,等待數據備份完畢。
- 登錄阿里云MongoDB控制臺,獲取阿里云MongoDB實例的公網連接地址。
- 如要遷移至阿里云MongoDB副本集實例,請獲取Primary節點公網連接地址,詳情請參見副本集實例連接說明。
- 如要遷移至阿里云MongoDB分片集群實例,請獲取任一Mongos節點的公網連接地址,詳情請參見分片集群實例連接說明。
說明 公網連接地址需要手動申請,詳情請參見申請公網連接地址。 - 在本地設備上,執行以下命令將數據庫數據導入至阿里云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
- 當命令行提示
Enter password:
時,輸入阿里云MongoDB數據庫賬號對應的密碼并按回車鍵確認。
等待數據恢復完成,MongoDB Atlas數據庫即遷移至阿里云MongoDB數據庫中。