全部產品
Search
文件中心

ApsaraDB for MongoDB:邏輯備份恢複至自建資料庫

更新時間:Feb 28, 2024

本文介紹如何通過Mongorestore將ApsaraDB for MongoDB執行個體的邏輯備份檔案恢複至自建MongoDB資料庫中。

前提條件

  • 執行個體儲存類型為SSD本地碟
  • 為保障相容性,自建MongoDB資料庫和ApsaraDB for MongoDB執行個體的資料庫版本相同。

背景資訊

MongoDB提供了一組官方備份恢複工具,分別是MongodumpMongorestore。ApsaraDB for MongoDB的邏輯備份通過Mongodump產生,當您需要將邏輯備份恢複到自建MongoDB資料庫時可以通過Mongorestore進行恢複。

注意事項

  • 由於MongoDB一直在迭代更新,舊版本的Mongorestore不能相容新版本的MongoDB。請選擇合適的Mongorestore版本,以相容MongoDB,如何選擇Mongorestore版本,請參見mongorestore
  • 當自建資料庫是分區叢集時,匯入資料命令中的<hostname>參數需填寫為自建資料庫中Mongos組件的地址。
  • 當自建資料庫是分區叢集時,匯入資料命令中必須添加--nsExclude="config.*",否則資料恢複過程可能會出現報錯。
  • 將分區叢集執行個體中的資料恢複至自建資料庫時,需要下載分區叢集執行個體中每個Shard組件的備份資料並匯入到自建資料庫。當分區叢集執行個體存在孤立文檔(Orphaned Document)時,自建資料庫中可能會出現髒資料。恢複多個Shard的備份到同一個分區叢集的時候,僅恢複第一個Shard備份時需使用drop參數。

準備工作

下載並安裝與ApsaraDB for MongoDB執行個體資料庫版本相同的MongoDB至自建MongoDB資料庫所在用戶端(本機伺服器或Elastic Compute Service執行個體),安裝方法請參見Install MongoDB

操作步驟

  1. 登入MongoDB管理主控台
  2. 根據執行個體類型,在左側導覽列,單擊複本集執行個體列表分區叢集執行個體列表
  3. 在頁面左上方,選擇執行個體所在的資源群組和地區。
  4. 單擊目標執行個體ID或目標執行個體所在行操作列的管理
  5. 備份資料庫。
    1. 在目標執行個體頁面右上方,單擊備份執行個體
    2. 備份執行個體 面板,選擇備份方法 邏輯備份
    3. 單擊確定,等待執行個體備份完成。
  6. 下載備份檔案,下載方法請參見下載備份檔案
  7. 將下載的備份檔案複製到自建MongoDB所在用戶端(即安裝有Mongorestore工具的用戶端)。
  8. 執行如下命令,將備份檔案中的資料匯入至自建MongoDB資料庫中。
    mongorestore -h <hostname> --port <server port> -u <username> -p <password> --drop --gzip --archive=<backupfile> -vvvv --stopOnError
    您需要修改如下參數:
    • <hostname> :自建MongoDB資料庫所屬的伺服器位址,本機可填寫127.0.0.1。

      當自建資料庫是分區叢集時,該參數需填寫為自建資料庫中Mongos組件的地址。

    • <server port>:自建MongoDB資料庫的資料庫連接埠。
    • <username>:登入自建MongoDB資料庫的資料庫使用者名稱,請確保該使用者擁有所有庫的許可權,建議使用root帳號。
    • <password>:登入自建MongoDB資料庫的資料庫密碼。
    • <backupfile>:下載的邏輯備份檔案名。
    命令參數無需修改,說明如下:
    • --drop:在恢複備份檔案之前,刪除集合。
      說明 當恢複多個Shard的備份到同一個分區叢集的時候,僅恢複第一個Shard備份時需使用該參數。
    • --gzip:備份檔案中的資料是以gzip形式壓縮過的,需要先解壓。
      說明 此參數從MongoDB 3.1.4版本開始支援,更多資訊,請參見mongo-tools
    • -vvvv:備份檔案輸出的詳細程度,v越多,備份檔案的資料越詳細。
    • --stopOnError:匯入處理程序中遇到任何錯誤後,都會停止匯入資料。
    • --nsExclude:不恢複匹配成功的資料集合。例如--nsExclude="config.*"

    樣本:

    mongorestore -h 127.0.0.1 --port 27017 -u root -p ******** --drop --gzip --archive=hins1111_data_20190710.ar -vvvv --stopOnError