教學課程:使用 Azure 資料庫移轉服務在離線狀態下將 MongoDB 移轉至 Azure Cosmos DB for MongoDB RU
適用於: MongoDB
重要
您可以使用適用於 Azure Data Studio 的 MongoDB 移轉延伸模組,將移轉至適用於 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 ExpressRoute 或 VPN,提供站對站連線能力給您的內部部署來源伺服器。 如需建立虛擬網路的詳細資訊,請參閱 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 資源提供者。
登入 Azure 入口網站。 搜尋並選取訂閱。
選取您要在其中建立 Azure 資料庫移轉服務執行個體的訂用帳戶,然後選取 [資源提供者]。
搜尋移轉,然後針對 [Microsoft.DataMigration] 選取 [註冊]。
建立執行個體
在 Azure 入口網站中,選取 [+ 建立資源],搜尋「Azure 資料庫移轉服務」,然後從下拉式清單選取 [Azure 資料庫移轉服務]。
在 [Azure 資料庫移轉服務] 畫面上,選取 [建立]。
在 [建立移轉服務],指定服務的名稱、訂用帳戶,以及新的或現有的資源群組。
選取您要在其中建立 Azure 資料庫移轉服務執行個體的位置。
選取現有的虛擬網路或建立新的虛擬網路。
虛擬網路會為 Azure 資料庫移轉服務提供來源 MongoDB 執行個體和目標 Azure Cosmos DB 帳戶的存取權。
如需如何在 Azure 入口網站中建立虛擬網路的詳細資訊,請參閱使用 Azure 入口網站建立虛擬網路。
選取定價層。
如需成本和定價層的詳細資訊,請參閱定價分頁。
選取 [建立] 以建立服務。
建立移轉專案
建立服務之後,請在 Azure 入口網站中找到該服務並加以開啟。 接著建立新的移轉專案。
在 Azure 入口網站中,選取 [所有服務],搜尋 Azure 資料庫移轉服務,然後選取 [Azure 資料庫移轉服務]。
在 [Azure 資料庫移轉服務] 畫面上,搜尋您建立的 Azure 資料庫移轉服務執行個體名稱,然後選取該執行個體。
選取 [+ New Migration Project] \(+ 新增移轉專案\)。
在 [新增移轉專案],指定專案的名稱,然後在 [來源伺服器類型] 文字方塊中選取 [MongoDB]。 在 [目標伺服器類型] 文字方塊選取 [Azure Cosmos DB for NoSQL],然後在 [選擇活動類型] 選取 [離線資料移轉]。
選取 [建立及執行活動],以建立專案並執行移轉活動。
指定來源詳細資料
在 [來源詳細資料] 畫面上,指定來源 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 位址。
選取儲存。
指定目標詳細資料
在 [移轉目標詳細資料] 畫面上,指定目標 Azure Cosmos DB 帳戶的連線詳細資料。 此帳戶是預先佈建的 Azure Cosmos DB for MongoDB 帳戶,您要將 MongoDB 資料庫移轉至此。
選取儲存。
對應到目標資料庫
在 [Map to target databases] \(對應到目標資料庫\) 畫面上,對應要進行移轉的來源資料庫和目標資料庫。
如果目標資料庫包含與來源資料庫相同的資料庫名稱,Azure 資料庫移轉服務依預設會選取目標資料庫。
如果 Create 出現在資料庫名稱旁邊,則代表 Azure 資料庫移轉服務未找到目標資料庫,且服務會為您建立該資料庫。
在進行到這個移轉階段時,您可以佈建輸送量。 在 Azure Cosmos DB 中,您可以在資料庫層級或個別針對每個集合佈建輸送量。 輸送量以要求單位進行測量。 深入了解 Azure Cosmos DB 定價。
選取儲存。
在 [集合設定] 畫面上,展開集合清單,然後檢閱要遷移的集合清單。
Azure 資料庫移轉服務會自動選取所有存在於來源 MongoDB 執行個體上,卻不存在於目標 Azure Cosmos DB 帳戶上的集合。 如果您想要重新移轉已包含資料的集合,就必須在此窗格上明確地選取集合。
您可以指定要讓集合使用的 RU 數目。 Azure 資料庫移轉服務會根據集合大小來建議智慧的預設值。
注意
平行執行資料庫移轉和集合。 如有必要,您可以使用多個 Azure 資料庫移轉服務執行個體來加速執行。
您也可以指定分區索引鍵以便利用 Azure Cosmos DB 中的資料分割,從而獲得最佳延展性。 請檢閱選取分區/資料分割索引鍵的最佳做法。
選取儲存。
在 [移轉摘要] 畫面上的 [活動名稱] 文字方塊中,指定移轉活動的名稱。
執行移轉
選取 [執行移轉]。 移轉活動視窗隨即出現,而且活動的狀態為 [未啟動]。
監視移轉
在移轉活動畫面上,選取 [重新整理] 以更新顯示,直到移轉的狀態顯示為 [已完成] 為止。
注意
您可以選取活動來取得資料庫層級和集合層級移轉計量的詳細資料。
確認 Azure Cosmos DB 中的資料
在移轉完成之後,您可以檢查 Azure Cosmos DB 帳戶,以確認所有集合都已成功移轉。
移轉後最佳化
將 MongoDB 資料庫中儲存的資料移轉至 Azure Cosmos DB for MongoDB 之後,您就可以連線至 Azure Cosmos DB 並管理這些資料。 您也可以執行其他的移轉後最佳化步驟。 這可能包括最佳化編製索引原則、更新預設一致性層級,或設定 Azure Cosmos DB 帳戶的全域散發。 如需詳細資訊,請參閱移轉後最佳化。
其他資源
正在嘗試為遷移至 Azure Cosmos DB 進行容量規劃嗎?
- 如果您知道現有資料庫叢集中的虛擬核心和伺服器數目,請參閱使用虛擬核心或 vCPU 來估計要求單位
- 如果您知道目前資料庫工作負載的一般要求率,請參閱使用 Azure Cosmos DB 容量規劃工具來估計要求單位
相關內容
- Azure 資料庫移轉指南 (英文)