Mongodump和Mongorestore是MongoDB數據庫自帶的備份恢復工具。您可以在本地設備或ECS實例中安裝MongoDB數據庫,然后借助該工具將自建MongoDB數據庫遷移至阿里云MongoDB實例。
推薦使用DTS遷移單節點架構的自建MongoDB數據庫上云,可實現不停機遷移上云,操作步驟,請參見云數據庫MongoDB版(單節點架構)全量遷移至云數據庫MongoDB版(所有架構)。
更多數據遷移或同步場景的解決方案,請參見數據遷移和同步方案概覽。
前提條件
請確保安裝的Mongodump和Mongorestore軟件版本與自建MongoDB數據庫的版本一致。安裝步驟請參見官方文檔Install MongoDB。
說明您也可以直接在自建MongoDB數據庫所屬的服務器上執行Mongodump和Mongorestore命令,無需安裝。
為保障兼容性,自建MongoDB數據庫的版本需為3.0及以上版本。
說明阿里云MongoDB實例支持的存儲引擎請參見版本及存儲引擎,如需跨版本或跨引擎遷移,請提前確認兼容性。
單節點實例的存儲空間應大于自建MongoDB數據庫已占用的存儲空間。如存儲空間不足,您可以升級存儲空間,詳情請參見變更配置方案概覽。
注意事項
該操作為全量數據遷移。為保障數據一致性,遷移操作開始前請停止自建數據庫的相關業務,并停止數據寫入。
如果您之前使用Mongodump命令對數據庫進行過備份操作,請將dump文件夾中的備份文件移動至其他目錄并確保dump文件夾為空,否則執行備份操作將會覆蓋該文件夾中的歷史備份文件。
請在自建MongoDB數據庫服務器上執行Mongodump和Mongorestore命令,并非在Mongo Shell環境下執行。
步驟一:備份自建數據庫
在自建MongoDB數據庫所屬的服務器中執行以下命令,備份所有數據庫的數據。
mongodump --host <mongodb_host> --port <port> -u <username> --authenticationDatabase <database>
說明<mongodb_host>:自建MongoDB數據庫的服務器地址,本機可使用127.0.0.1。
<port>:數據庫服務的端口號,默認為27017。
<username>:自建MongoDB數據庫的數據庫賬號,本文以test為示例賬號。
<database>:鑒權數據庫名,即數據庫賬號所屬的數據庫。
示例:
mongodump --host 127.0.0.1 --port 27017 -u test --authenticationDatabase admin
當命令行提示
Enter password:
時,輸入數據庫賬號對應的密碼并按回車鍵確認,即開始執行備份操作。說明輸入密碼時,密碼字符是不可見的。
等待備份完成,自建數據庫中的數據即備份至當前目錄下的dump文件夾中。
步驟二:將數據遷移至阿里云
獲取阿里云MongoDB實例Primary節點的連接地址。
登錄MongoDB管理控制臺。
在頁面左上角,選擇實例所屬的地域。
在左側導航欄,單擊副本集實例列表。
找到目標實例,單擊實例ID。
在左側導航欄,單擊數據庫連接,即可查看數據庫連接信息。
將自建數據庫所屬服務器的IP地址加入至MongoDB實例的白名單中,詳情請參見設置白名單。
說明通過專有網絡連接阿里云MongoDB實例時,您需要將自建數據庫所屬ECS的內網IP地址加入至阿里云MongoDB實例的白名單中。
通過公網地址連接阿里云MongoDB實例時,將需要將自建數據庫所屬本地服務器的公網IP地址加入至阿里云MongoDB實例的白名單中。
在自建數據庫服務器上執行以下語句,將備份的數據全部遷移至阿里云MongoDB實例。
mongorestore --host <Primary_host> -u <username> --authenticationDatabase <database> <Backup directory>
說明<Primary_host>:阿里云MongoDB實例中Primary節點的連接地址。
<username>:阿里云MongoDB實例的數據庫賬號,初始賬號為root。
<database>:鑒權數據庫名,即數據庫賬號所屬的數據庫。當數據庫賬號為root時,對應的數據庫為admin。
<Backup directory>:備份文件存儲的目錄,默認為dump。
示例:
數據庫賬號為test,所屬數據庫為admin。
mongorestore --host dds-bp19f409d7512****-pub.mongodb.rds.aliyuncs.com:3717 -u test --authenticationDatabase admin dump
當命令行提示
Enter password:
時,輸入阿里云MongoDB實例數據庫賬號對應的密碼并按回車鍵確認,即開始執行數據遷移操作。說明輸入密碼時,密碼字符是不可見的。
如果忘記了root賬號的密碼,您可以通過設置密碼的方式來重置密碼。
等待數據遷移完成,根據業務需求選擇合適的時間,將業務切換至阿里云MongoDB實例。
更多信息
數據庫遷移至阿里云MongoDB實例后,您可以執行連接數據庫、管理數據庫和數據庫賬號等操作。