共用方式為


教學課程:使用 Azure 資料庫移轉服務在離線狀態下將 MongoDB 移轉至 Azure Cosmos DB for MongoDB RU

適用於: MongoDB

重要

您可以使用適用於 Azure Data StudioMongoDB 移轉延伸模組,將移轉至適用於 MongoDB 的 Azure Cosmos DB 虛擬核心。 此延伸模組會利用背景中的 Azure 資料移轉服務。 請注意,無法使用 Azure 入口網站 上的 資料移轉服務,將移轉至適用於 MongoDB 的 Azure Cosmos DB 虛擬核心。

此 MongoDB 移轉指南是 MongoDB 移轉系列的一部分。 重要的 MongoDB 移轉步驟分為移轉前、移轉和移轉後,如下所示。

移轉步驟的圖表。

概述使用 DMS 在離線狀態下將資料從 MongoDB 移轉至 Azure Cosmos DB

使用 Azure 資料庫移轉服務,在離線狀態下將資料庫從內部部署或雲端的 MongoDB 執行個體一次移轉至 Azure Cosmos DB for MongoDB。

在本教學課程中,您會了解如何:

  • 建立 Azure 資料庫移轉服務的執行個體。
  • 使用 Azure 資料庫移轉服務來建立移轉專案。
  • 執行移轉。
  • 監視移轉。

在本教學課程中,您要移轉裝載於 Azure 虛擬機器上的 MongoDB 資料集。 透過使用 Azure 資料庫移轉服務,您將資料集移轉至 Azure Cosmos DB for MongoDB。 如果您尚未設定 MongoDB 來源,請參閱在 Azure 中的 Windows VM 上安裝及設定 MongoDB

必要條件

若要完成本教學課程,您需要:

  • 完成移轉前步驟,例如估計輸送量和選擇分割區索引鍵。

  • 建立 Azure Cosmos DB for MongoDB 帳戶

    注意

    若是要移轉至使用無伺服器模式佈建的 Azure Cosmos DB for MongoDB 帳戶,目前不支援使用 DMS。

  • 使用 Azure Resource Manager 建立 Microsoft Azure 虛擬網路,以用於 Azure 資料庫移轉服務。 此開發模型使用 Azure ExpressRouteVPN,提供站對站連線能力給您的內部部署來源伺服器。 如需建立虛擬網路的詳細資訊,請參閱 Azure 虛擬網路文件,特別是快速入門文章,裡面會提供逐步操作詳細資料。

    在虛擬網路設定期間,如果您使用 ExpressRoute 搭配與 Microsoft 對等互連的網路,請將下列服務端點新增至將佈建服務的子網路:

    • 目標資料庫端點 (例如,SQL 端點或 Azure Cosmos DB 端點)
    • 儲存體端點
    • 服務匯流排端點

    此為必要設定,因為 Azure 資料庫移轉服務沒有網際網路連線。

  • 確認您的虛擬網路網路安全性群組 (NSG) 規則不會封鎖下列通訊連接埠:53、443、445、9354 和 10000-20000。 如需詳細資訊,請參閱使用網路安全性群組來篩選網路流量

  • 開啟您的 Windows 防火牆以允許 Azure 資料庫移轉服務存取來源 MongoDB 伺服器 (依預設會使用 TCP 連接埠 27017)。

  • 使用來源資料庫前面的防火牆應用裝置時,您可能必須新增防火牆規則,才能讓 Azure 資料庫移轉服務存取來源資料庫,以進行移轉。

設定伺服器端重試功能

如果從 MongoDB 移轉至 Azure Cosmos DB,您可以享有資源治理功能。 透過這些功能,您可以充分利用所佈建的要求單位 (RU/秒) 輸送量。 如果特定的資料庫移轉服務要求超過容器所佈建的 RU/秒,則 Azure Cosmos DB 可能會在移轉期間對該要求進行節流。 此時需要重試該要求。

資料庫移轉服務能夠執行重試。 請務必了解資料庫移轉服務和 Azure Cosmos DB 之間網路躍點所涉及的往返時間會影響該要求的整體回應時間。 改善節流要求的回應時間可以縮短移轉所需的總時間。

Azure Cosmos DB 的伺服器端重試功能可讓服務攔截節流錯誤碼,以較低的往返時間重試,大幅改善要求的回應時間。

若要使用伺服器端重試,請在 Azure Cosmos DB 入口網站,選取 [功能]>[伺服器端重試]

顯示哪裡可找到伺服器端重試功能的螢幕擷取畫面。

若此功能為停用,請選取 [啟用]

顯示如何啟用伺服器端重試的螢幕擷取畫面。

註冊資源提供者

您必須在建立第一個資料庫移轉服務執行個體之前,註冊 Microsoft.DataMigration 資源提供者。

  1. 登入 Azure 入口網站。 搜尋並選取訂閱

    顯示入口網站訂用帳戶的螢幕擷取畫面。

  2. 選取您要在其中建立 Azure 資料庫移轉服務執行個體的訂用帳戶,然後選取 [資源提供者]

    SQL VM 資源提供者的螢幕擷取畫面。

  3. 搜尋移轉,然後針對 [Microsoft.DataMigration] 選取 [註冊]

    顯示註冊資源提供者的螢幕擷取畫面。

建立執行個體

  1. 在 Azure 入口網站中,選取 [+ 建立資源],搜尋「Azure 資料庫移轉服務」,然後從下拉式清單選取 [Azure 資料庫移轉服務]

    顯示 Azure Marketplace 的螢幕擷取畫面。

  2. 在 [Azure 資料庫移轉服務] 畫面上,選取 [建立]

    顯示如何建立 Azure 資料庫移轉服務執行個體的螢幕擷取畫面。

  3. 在 [建立移轉服務],指定服務的名稱、訂用帳戶,以及新的或現有的資源群組。

  4. 選取您要在其中建立 Azure 資料庫移轉服務執行個體的位置。

  5. 選取現有的虛擬網路或建立新的虛擬網路。

    虛擬網路會為 Azure 資料庫移轉服務提供來源 MongoDB 執行個體和目標 Azure Cosmos DB 帳戶的存取權。

    如需如何在 Azure 入口網站中建立虛擬網路的詳細資訊,請參閱使用 Azure 入口網站建立虛擬網路

  6. 選取定價層。

    如需成本和定價層的詳細資訊,請參閱定價分頁

    設定 Azure 資料庫移轉服務執行個體組態設定的螢幕擷取畫面。

  7. 選取 [建立] 以建立服務。

建立移轉專案

建立服務之後,請在 Azure 入口網站中找到該服務並加以開啟。 接著建立新的移轉專案。

  1. 在 Azure 入口網站中,選取 [所有服務],搜尋 Azure 資料庫移轉服務,然後選取 [Azure 資料庫移轉服務]

    顯示如何找出 Azure 資料庫移轉服務所有執行個體的螢幕擷取畫面。

  2. 在 [Azure 資料庫移轉服務] 畫面上,搜尋您建立的 Azure 資料庫移轉服務執行個體名稱,然後選取該執行個體。

  3. 選取 [+ New Migration Project] \(+ 新增移轉專案\)

  4. 在 [新增移轉專案],指定專案的名稱,然後在 [來源伺服器類型] 文字方塊中選取 [MongoDB]。 在 [目標伺服器類型] 文字方塊選取 [Azure Cosmos DB for NoSQL],然後在 [選擇活動類型] 選取 [離線資料移轉]

    顯示專案選項的螢幕擷取畫面。

  5. 選取 [建立及執行活動],以建立專案並執行移轉活動。

指定來源詳細資料

  1. 在 [來源詳細資料] 畫面上,指定來源 MongoDB 伺服器的連線詳細資料。

    重要

    Azure 資料庫移轉服務不支援以 Azure Cosmos DB 做為來源。

    有三種模式可連線至來源:

    • 標準模式,可接受完整網域名稱或 IP 位址、連接埠號碼和連線認證。

    • 連接字串模式,可接受以連接字串 URI 格式描述的 MongoDB 連接字串。

    • 來自 Azure 儲存體的資料,可接受 Blob 容器 SAS URL。 如果 Blob 容器含有 MongoDB bsondump 工具所產生的 BSON 傾印,請選取 [Blob 包含 BSON 傾印]。 如果容器包含 JSON 檔案,請勿選取此選項。

      如果您選取此選項,請確定儲存體帳戶連接字串以下列格式顯示:

      https://blobnameurl/container?SASKEY
      

      您可以在 Azure 儲存體總管中找到此 Blob 容器 SAS 連接字串。 建立相關容器的 SAS 會提供您所要求格式的 URL。

      此外,根據 Azure 儲存體中的類型傾印資訊,請記住下列要點:

      • 若是 BSON 傾印,Blob 容器內的資料必須是 bsondump 格式。 將資料檔案放入以所包含資料庫命名的資料夾,格式為 collection.bson。 使用 collection.metadata.json 格式命名任何中繼資料檔案。

      • 就 JSON 傾印而言,Blob 容器中的檔案必須放入依所屬資料庫命名的資料夾中。 在每個資料庫資料夾中,資料檔案必須放在名為 data 的子資料夾中,使用 collection.json 格式命名。 將任何中繼資料檔案放置在名為 metadata 的子資料夾中,使用相同的 collection.json 格式命名。 中繼資料檔案必須採用 MongoDB bsondump 工具所產生的相同格式。

      重要

      不建議在 MongoDB 伺服器上使用自我簽署憑證。 若您必須使用,請使用連接字串模式連線至伺服器,並確認您的連接字串有引號 ("")。

      &sslVerifyCertificate=false
      

    若是無法解析 DNS 名稱的情況,您也可以使用 IP 位址。

    顯示指定來源詳細資料的螢幕擷取畫面。

  2. 選取儲存

指定目標詳細資料

  1. 在 [移轉目標詳細資料] 畫面上,指定目標 Azure Cosmos DB 帳戶的連線詳細資料。 此帳戶是預先佈建的 Azure Cosmos DB for MongoDB 帳戶,您要將 MongoDB 資料庫移轉至此。

    顯示指定目標詳細資料的螢幕擷取畫面。

  2. 選取儲存

對應到目標資料庫

  1. 在 [Map to target databases] \(對應到目標資料庫\) 畫面上,對應要進行移轉的來源資料庫和目標資料庫。

    如果目標資料庫包含與來源資料庫相同的資料庫名稱,Azure 資料庫移轉服務依預設會選取目標資料庫。

    如果 Create 出現在資料庫名稱旁邊,則代表 Azure 資料庫移轉服務未找到目標資料庫,且服務會為您建立該資料庫。

    在進行到這個移轉階段時,您可以佈建輸送量。 在 Azure Cosmos DB 中,您可以在資料庫層級或個別針對每個集合佈建輸送量。 輸送量以要求單位進行測量。 深入了解 Azure Cosmos DB 定價

    顯示對應至目標資料庫的螢幕擷取畫面。

  2. 選取儲存

  3. 在 [集合設定] 畫面上,展開集合清單,然後檢閱要遷移的集合清單。

    Azure 資料庫移轉服務會自動選取所有存在於來源 MongoDB 執行個體上,卻不存在於目標 Azure Cosmos DB 帳戶上的集合。 如果您想要重新移轉已包含資料的集合,就必須在此窗格上明確地選取集合。

    您可以指定要讓集合使用的 RU 數目。 Azure 資料庫移轉服務會根據集合大小來建議智慧的預設值。

    注意

    平行執行資料庫移轉和集合。 如有必要,您可以使用多個 Azure 資料庫移轉服務執行個體來加速執行。

    您也可以指定分區索引鍵以便利用 Azure Cosmos DB 中的資料分割,從而獲得最佳延展性。 請檢閱選取分區/資料分割索引鍵的最佳做法

    顯示選取集合資料表的螢幕擷取畫面。

  4. 選取儲存

  5. [移轉摘要] 畫面上的 [活動名稱] 文字方塊中,指定移轉活動的名稱。

    顯示輸出摘要的螢幕擷取畫面。

執行移轉

選取 [執行移轉]。 移轉活動視窗隨即出現,而且活動的狀態為 [未啟動]

顯示活動狀態的螢幕擷取畫面。

監視移轉

在移轉活動畫面上,選取 [重新整理] 以更新顯示,直到移轉的狀態顯示為 [已完成] 為止。

注意

您可以選取活動來取得資料庫層級和集合層級移轉計量的詳細資料。

顯示活動狀態已完成的螢幕擷取畫面。

確認 Azure Cosmos DB 中的資料

在移轉完成之後,您可以檢查 Azure Cosmos DB 帳戶,以確認所有集合都已成功移轉。

顯示檢查 Azure Cosmos DB 帳戶的位置,以驗證所有集合已成功移轉的螢幕擷取畫面。

移轉後最佳化

將 MongoDB 資料庫中儲存的資料移轉至 Azure Cosmos DB for MongoDB 之後,您就可以連線至 Azure Cosmos DB 並管理這些資料。 您也可以執行其他的移轉後最佳化步驟。 這可能包括最佳化編製索引原則、更新預設一致性層級,或設定 Azure Cosmos DB 帳戶的全域散發。 如需詳細資訊,請參閱移轉後最佳化

其他資源

正在嘗試為遷移至 Azure Cosmos DB 進行容量規劃嗎?