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管理主控台完成以下準備工作:
- 建立阿里雲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>: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
- 當命令列提示
Enter password:
時,輸入阿里雲MongoDB資料庫帳號對應的密碼並按斷行符號鍵確認。
等待資料恢複完成,MongoDB Atlas資料庫即遷移至阿里雲MongoDB資料庫中。