閱讀515 返回首頁    go 阿裏雲 go 技術社區[雲棲]


從本地MongoDB遷移到MongoDB實例__數據遷移_用戶指南_數據傳輸-阿裏雲

使用數據傳輸DTS可以將本地的MongoDB實例的數據遷移至RDS For MongoDB。Mongodb遷移支持增量數據同步功能,可以實現在本地應用不停服的情況下,平滑完成MongoDB數據庫的遷移工作。

本小節簡單介紹使用DTS進行MongoDB->RDS For MongoDB數據遷移的任務配置流程。

遷移類型簡介

對於MongoDB->雲數據庫 MongoDB數據遷移,DTS支持全量數據遷移及增量數據遷移,這個遷移類型的功能及限製如下。

  • 全量數據遷移

    數據傳輸DTS將源數據庫遷移對象的存量數據全部遷移到目標實例。

  • 增量數據遷移

    增量數據遷移將遷移過程中,本地MongoDB實例的增量更新數據同步到雲數據庫MongoDB,最終本地MongoDB同雲數據庫MongoDB進入動態數據同步的過程。使用增量數據遷移,可以實現在本地MongoDB正常提供服務的時候,平滑完成MongoDB->RDS For MongoDB的數據遷移。

遷移功能

  • MongoDB全量數據遷移支持

    • 支持database 遷移
    • 支持collection 遷移
    • 支持index 遷移
  • MongoDB增量數據遷移支持

    • 支持document 新增、刪除、更新 操作的同步
    • 支持collection新建、刪除 操作的同步
    • 支持database 新建、刪除 操作的同步
    • 支持index 新建、刪除 操作的同步

遷移權限要求

當使用DTS進行MongoDB-> 雲數據庫MongoDB遷移時,不同遷移類型,對源跟目標MySQL實例的遷移帳號權限要求如下:

遷移類型 全量數據遷移 增量數據遷移
本地MongoDB read 待遷移庫的read
admin的read權限
local的read權限
目的MongoDB實例 readWrite readWrite

遷移任務配置

下麵詳細介紹使用DTS將本地的MongoDB遷移到雲數據庫MongoDB的任務配置流程。

遷移帳號創建

遷移任務配置,需要提供本地自建MongoDB實例及目標MongoDB雲數據庫的遷移賬號,遷移賬號所需權限詳見上麵的 遷移權限要求 一節。

如果您的本地MongoDB或MongoDB雲數據庫的遷移賬號尚未創建,那麼可以參考如下流程創建遷移賬號:

  1. db.createUser({user:"username",pwd:"password",roles:[{role:"rolename1",db:"database_name1"},{role:"rolename2",db:"database_name2"}]})

參數說明:

  • username: 要創建的賬號
  • password: 上麵賬號對應的密碼
  • rolename1/rolename2:待授權給username的角色名,例如上麵的read, readWrite
  • database_name1/database_name2: 隻將database_name1/database_name2上的角色role1/role2授權給username

    關於MongoDB的角色授權也可以參考 MongoDB Create User說明

遷移任務配置

當上麵的所有前置條件都配置完成後,就可以開始正式的數據遷移了。下麵詳細介紹遷移任務配置流程。

  1. 進入數據傳輸DTS控製台,點擊右上角的創建遷移任務,開始遷移任務配置。
  2. 本地MongoDB跟目標MongoDB實例的連接信息配置。

    這個步驟主要配置 遷移任務名稱,本地MongoDB連接信息及目標MongoDB雲數據庫連接信息。其中:

    • 任務名稱

      DTS為每個任務自動生成一個任務名稱,任務名稱沒有唯一性要求。您可以根據需要修改任務名稱,建議為任務配置具有業務意義的名稱,便於後續的任務識別。

    • 源實例信息

      • 實例類型:選擇 有公網IP的自建數據庫
      • 數據庫類型: 選擇 MongoDB
      • 主機名或IP地址: 配置MongoDB訪問地址,這個地址必須為公網訪問方式
      • 端口:本地MongoDB實例的監聽端口
      • 數據庫名稱:連接MongoDB實例的默認數據庫名
      • 數據庫賬號:本地MongoDB實例的連接賬號
      • 數據庫密碼:本地MongoDB實例連接賬號對應的密碼
    • 目標實例信息

      • 實例類型:選擇 MongoDB實例
      • MongoDB實例ID: 配置遷移的目標MongoDB實例的實例ID。 DTS支持經典網絡的MongoDB實例。如果您的MongoDB實例為VPC網絡的實例,那麼需要切換到經典網絡模式後,再使用DTS進行遷移
      • 數據庫名稱:連接MongoDB的默認數據庫名
      • 數據庫賬號:連接MongoDB實例的連接賬號
      • 數據庫密碼:上麵數據庫賬號對應的密碼

      當配置完連接信息後,點擊右下角 授權白名單並進入下一步 進行白名單授權。這個步驟DTS會將DTS服務器的IP地址添加到目標MongoDB雲數據庫的白名單中,避免因為MongoDB實例設置了白名單,DTS服務器連接不上MongoDB實例導致遷移失敗。

      MongoDB遷移_步驟1

  3. 選擇遷移對象及遷移類型。

    • 遷移類型

      對於MongoDB,支持 全量數據遷移、增量數據遷移。

      如果隻需要進行全量遷移,那麼遷移類型選擇:全量數據遷移。

      如果需要進行不停機遷移,那麼遷移類型選擇:全量數據遷移+增量數據遷移。

    • 遷移對象

      這個步驟需要選擇要遷移的對象。遷移對象選擇的粒度可以為:庫、collection/function 兩個粒度。默認情況下,對象遷移到MongoDB實例後,對象名跟本地MongoDB實例一致。如果您遷移的對象在源實例跟目標實例上名稱不同,那麼需要使用DTS提供的對象名映射功能,詳細使用方式可以參考庫表列映射

      MongoDB遷移_步驟2

  4. 預檢查。

    在遷移任務正式啟動之前,會先進行前置預檢查,隻有預檢查通過後,才能成功啟動遷移。預檢查的內容及修複方式可以參考本文末尾的 預檢查簡介 一節。

    如果預檢查失敗,那麼可以點擊具體檢查項後的按鈕,查看具體的失敗詳情,並根據失敗原因修複後,重新進行預檢查。

    MongoDB遷移_步驟3

  5. 啟動遷移任務。

    當預檢查通過後,可以啟動遷移任務,任務啟動成功後,可以在任務列表中查看遷移的具體狀態及遷移進度。

    至此,完成本地MongoDB數據庫到MongoDB實例的數據遷移任務配置。

預檢查

DTS在啟動遷移之前,會進行前置預檢查,本小節簡單介紹MongoDB->RDS For MongoDB的預檢查內容:

檢查項 檢查內容 備注
源庫連接性檢查 檢查DTS服務器跟本地MongoDB實例的連通性 (1) 填寫信息是否有誤?如果填寫信息有誤,請修改後重新預檢查
(2) 檢查端口是否配置從其他服務器連接訪問
目標庫連接性檢查 檢查DTS服務器跟目標MongoDB實例的連通性 檢查填寫信息是否有誤,如果有誤請先修改後重新預檢查
源庫版本檢查 檢查本地MongoDB的版本,DTS是否支持 請先升級版本到3.2後,重新預檢查
源庫權限檢查 檢查本地MongoDB提供的遷移賬號的權限是否滿足需求 如果檢查失敗,請參照 遷移賬號創建 一節授權後,重新預檢查
目的庫權限檢查 檢查目的MongoDB數據庫提供的遷移賬號的權限是否滿足需求 如果檢查失敗,請參照 遷移賬號創建 一節授權後,重新預檢查
增量拓撲衝突檢查 檢查MongoDB實例上是否有其他增量遷移任務正在運行 如果檢查失敗,那麼需要結束或刪除其他的增量遷移任務後,重新預檢查

最後更新:2016-11-23 16:29:11

  上一篇:go 本地PostgreSQL遷移至RDS for PostgreSQL__數據遷移_用戶指南_數據傳輸-阿裏雲
  下一篇:go 自建Redis到雲Redis實例的遷移方案__數據遷移_用戶指南_數據傳輸-阿裏雲