教學課程:使用 Azure 資料移轉服務 脫機將 MongoDB 遷移至適用於 MongoDB 的 Azure Cosmos DB RU

適用於: Mongodb

重要

請先閱讀此整份指南,再執行您的移轉步驟。 Azure 資料移轉服務 目前不支援移轉至適用於 MongoDB 的 Azure Cosmos DB 虛擬核心帳戶。 使用 Azure Data Studio 中的適用於 MongoDB 的 Azure Cosmos DB 擴充功能,將您的 MongoDB 工作負載脫機移轉至適用於 MongoDB 的 Azure Cosmos DB 虛擬核心。

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

Diagram of migration steps.

使用 DMS 從 MongoDB 到 Azure Cosmos DB 的離線數據遷移概觀

使用 Azure 資料移轉服務 執行離線、一次性的資料庫從 MongoDB 的內部部署或雲端實例移轉至適用於 MongoDB 的 Azure Cosmos DB。

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

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

在本教學課程中,您會在 Azure 虛擬機中裝載的 MongoDB 中移轉數據集。 使用 Azure 資料移轉服務,您可以將數據集遷移至適用於 MongoDB 的 Azure Cosmos DB。 如果您尚未設定 MongoDB 來源,請參閱 在 Azure 中的 Windows VM 上安裝及設定 MongoDB。

必要條件

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

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

  • 建立適用於 MongoDB 的 Azure Cosmos DB 帳戶。

    注意

    如果您要移轉至使用無伺服器模式布建的適用於 MongoDB 的 Azure Cosmos DB 帳戶,目前不支援 DMS。

  • 使用 Azure Resource Manager 建立適用於 Azure 資料移轉服務 的 Microsoft 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 入口網站中,選取 [功能>伺服器端重試]。

Screenshot that shows where to find the Server Side Retry feature.

如果停用此功能,請選取 [ 啟用]。

Screenshot that shows how to enable Server Side Retry.

註冊資源提供者

在您建立第一個 資料移轉服務 實例之前,請先註冊 Microsoft.DataMigration 資源提供者。

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

    Show portal subscriptions

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

    Show resource providers

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

    Register resource provider

建立實例

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

    Screenshot that shows Azure Marketplace.

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

    Screenshot that shows how to create an instance of Azure Database Migration Service.

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

  4. 選取您要在其中建立 Azure 資料移轉服務 實例的位置。

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

    虛擬網路提供 Azure 資料移轉服務 來源 MongoDB 實例和目標 Azure Cosmos DB 帳戶的存取權。

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

  6. 選取定價層。

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

    Screenshot that shows configuration settings for the instance of Azure Database Migration Service.

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

建立移轉專案

建立服務之後,請在 Azure 入口網站 內找到它,然後加以開啟。 然後建立新的移轉專案。

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

    Screenshot that shows how to locate all instances of Azure Database Migration Service.

  2. [Azure 資料移轉服務] 畫面上,搜尋您所建立 Azure 資料移轉服務 實例的名稱,然後選取實例。

  3. 選取 [+ 新增移轉專案]。

  4. 在 [ 新增移轉專案] 上,指定專案的名稱,然後在 [來源伺服器類型 ] 文本框中,選取 [MongoDB]。 在 [ 目標伺服器類型] 文本框中,選取 [適用於 NoSQL 的 Azure Cosmos DB],然後針對 [選擇活動類型],選取 [ 脫機數據遷移]。

    Screenshot that shows project options.

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

指定來源詳細資料

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

    重要

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

    線上到來源的模式有三種:

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

    • 連線 ion 字串模式,其接受 MongoDB 連接字串,如 連線 字串 URI 格式中所述

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

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

      https://blobnameurl/container?SASKEY
      

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

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

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

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

    重要

    我們不建議您在 MongoDB 伺服器上使用自我簽署憑證。 如果您必須使用其中一個,請使用 連接字串 模式連接到伺服器,並確定您的 連接字串 具有引號 (“” )。

    &sslVerifyCertificate=false
    

    您也可以將IP位址用於無法解析 DNS 名稱的情況。

    Screenshot that shows specifying source details.

  2. 選取 [儲存]。

指定目標詳細資料

  1. 在 [ 移轉目標詳細數據] 畫面上,指定目標 Azure Cosmos DB 帳戶的連線詳細數據。 此帳戶是預先布建的適用於 MongoDB 的 Azure Cosmos DB 帳戶,您要移轉 MongoDB 數據。

    Screenshot that shows specifying target details.

  2. 選取 [儲存]。

對應到目標資料庫

  1. 在 [ 對應至目標資料庫 ] 畫面上,對應來源和目標資料庫以進行移轉。

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

    如果 [建立] 出現在資料庫名稱旁邊,表示 Azure 資料移轉服務 找不到目標資料庫,服務會為您建立資料庫。

    此時在移轉中,您可以 布建輸送量。 在 Azure Cosmos DB 中,您可以在資料庫層級或針對每個集合個別布建輸送量。 輸送量是以 要求單位來測量。 深入瞭解 Azure Cosmos DB 定價

    Screenshot that shows mapping to target databases.

  2. 選取 [儲存]。

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

    Azure 資料移轉服務 會自動選取存在於目標 Azure Cosmos DB 帳戶上來源 MongoDB 實例上的所有集合。 如果您想要重新匯入已經包含資料的集合,您必須明確選取此窗格上的集合。

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

    注意

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

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

    Screenshot that shows selecting collections tables.

  4. 選取 [儲存]。

  5. 在 [移轉摘要] 畫面的 [活動名稱] 文本框中,指定移轉活動的名稱。

    Screenshot that shows the nigration summary.

執行移轉

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

Screenshot that shows the activity status.

監視移轉

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

注意

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

Screnshot that shows the activity status completed.

確認 Azure Cosmos DB 中的數據

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

Screenshot that shows where to check your Azure Cosmos DB account to verify that all the collections were migrated successfully.

移轉后優化

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

其他資源

下一步

檢閱 Azure 資料庫移轉指南中其他案例的 移轉指引