教學課程:透過 Azure 入口網站,使用 DMS 將「適用於 MySQL 的 Azure 資料庫 - 單一伺服器」線上移轉至彈性伺服器

注意

本文包含「從屬」一詞的參考,Microsoft 已不再使用該字詞。 從軟體中移除該字詞時,我們也會將其從本文中移除。

您可以使用 Azure 資料庫移轉服務 (DMS) 將適用於 MySQL 的 Azure 資料庫 – 單一伺服器的執行個體移轉至適用於 MySQL 的 Azure 資料庫 - 彈性伺服器。其中,Azure 資料庫移轉服務是一個完全受控的服務,能夠從多個資料庫來源無縫移轉到 Azure 資料平台。 在本教學課程中,我們將使用 DMS 移轉活動,將範例資料庫從 適用於 MySQL 的 Azure 資料庫 部伺服器在線移轉至 MySQL 彈性伺服器(兩者皆執行 5.7 版)。

注意

DMS 在線移轉現已正式推出。 DMS 支援移轉至 MySQL 5.7 和 8.0 版,也支援從更低版本的 MySQL 伺服器 (v5.6 和更新版本) 移轉至更高版本的伺服器。 此外,DMS 支援跨區域、跨資源群組和跨訂用帳戶移轉,因此您可以為目標伺服器選取不同於來源伺服器指定的區域、資源群組和訂用帳戶。

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

  • 實作使用 DMS 建立彈性伺服器的最佳做法,以加快數據載入的速度。
  • 建立及設定目標彈性伺服器。
  • 建立 DMS 實例。
  • 在 DMS 中建立 MySQL 移轉專案。
  • 使用 DMS 移轉 MySQL 架構。
  • 執行移轉。
  • 監視移轉。
  • 執行移轉後步驟。
  • 實作執行移轉的最佳做法。

必要條件

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

限制

當您準備移轉時,請務必考慮下列限制。

  • 移轉非資料表物件時,DMS 不支援重新命名資料庫。
  • 移轉至已啟用bin_log的目標伺服器時,請務必啟用log_bin_trust_function_creators,以允許建立例程和觸發程式。
  • 目前,DMS 不支援移轉物件的 DEFINER 子句。 所有在來源上具有 definer 的物件類型都會卸除,並在移轉之後,支援 definer 子句且在結構描述移轉期間建立的所有物件預設 definer 將設定為用來執行移轉的登入。
  • 目前,DMS 僅支援在資料移動過程中移轉結構描述。 如果未選取任何資料移動,則不會進行結構描述移轉。 請注意,選取用於結構描述移轉的資料表也會選取該資料表用於資料移動。
  • 線上移轉支援僅限於 ROW binlog 格式。
  • 線上移轉現在支援在移轉至 v8.0 或 v5.7 適用於 MySQL 的 Azure 資料庫彈性伺服器目標伺服器時的 DDL 陳述式複寫。
    • 設定 Azure DMS 移轉活動時,支援針對架構移轉選取的資料庫、資料表和架構物件 (檢視、常式、觸發程式) 陳述式複寫。 不會複寫未選取的資料庫、資料表和架構物件的資料定義和管理陳述式。 若選取要移轉的整個伺服器,將會複寫初始載入完成後,在來源伺服器上建立之任何資料表、資料庫和架構物件的陳述式。
    • Azure DMS 語句復寫支持這裡所列的所有數據定義語句,但下列命令除外:• LOGFILE GROUP 語句 • SERVER 語句 • SPATIAL REFERENCE SYSTEM 語句 • TABLESPACE 語句
    • Azure DMS 語句復寫支援此處所列的所有數據 管理員 管理語句,但下列命令除外:
      • 設定預設角色
      • SET PASSWORD
    • Azure DMS 語句復寫支援此處所列的所有數據 管理員 設定 – 數據表維護語句,但下列命令除外:
      • REPAIR TABLE
      • 分析數據表
      • CHECKSUM TABLE

使用 DMS 建立彈性伺服器以加快資料載入速度的最佳做法

DMS 支援跨區域、跨資源群組以及跨訂用帳戶移轉,因此您可以隨意為目標彈性伺服器選取適當的區域、資源群組和訂用帳戶。 建立目標彈性伺服器之前,請考慮下列設定指引以協助確保使用 DMS 加快資料載入的速度。

  • 根據下表中的詳細資料,依據來源單一伺服器的定價層和虛擬核心,選取目標彈性伺服器的計算大小和計算層。

    單一伺服器定價層 單一伺服器虛擬核心 彈性伺服器計算大小 彈性伺服器計算層
    基本* 1 一般用途 Standard_D16ds_v4
    基本* 2 一般用途 Standard_D16ds_v4
    一般用途* 4 一般用途 Standard_D16ds_v4
    一般用途* 8 一般用途 Standard_D16ds_v4
    一般用途 16 一般用途 Standard_D16ds_v4
    一般用途 32 一般用途 Standard_D32ds_v4
    一般用途 64 一般用途 Standard_D64ds_v4
    記憶體最佳化 4 業務關鍵 Standard_E4ds_v4
    記憶體最佳化 8 業務關鍵 Standard_E8ds_v4
    記憶體最佳化 16 業務關鍵 Standard_E16ds_v4
    記憶體最佳化 32 業務關鍵 Standard_E32ds_v4

* 針對移轉,請選取目標彈性伺服器的一般用途 16 虛擬核心計算,以加快移轉速度。 移轉完成之後,請按照本文稍後執行移轉後活動一節中的計算大小建議,將目標伺服器縮減為所需的計算大小。

  • 目標彈性伺服器的 MySQL 版本必須大於或等於來源單一伺服器的版本。
  • 除非您需要在特定區域中部署目標彈性伺服器,否則請將可用性區域參數的值設定為「無喜好設定」。
  • 針對網路連線,在 [網路] 索引標籤上,如果來源單一伺服器已設定私人端點或私人連結,請選取 [私人存取];否則,請選取 [公用存取]。
  • 將所有防火牆規則從來源單一伺服器複製到目標彈性伺服器。
  • 在建立期間,將所有名稱/值標籤從單一伺服器複製到彈性伺服器。

建立及設定目標彈性伺服器

考慮到這些最佳做法,請建立您的目標彈性伺服器,然後加以設定。

  • 建立目標彈性伺服器。 如需引導式步驟,請參閱建立 適用於 MySQL 的 Azure 資料庫 彈性伺服器快速入門
  • 設定新的目標彈性伺服器,如下所示:
    • 執行移轉的使用者需要下列權限:
      • 請確定使用者具有目標伺服器上的「REPLICATION_APPLIER」或「BINLOG_ADMIN」許可權,以套用 bin 記錄檔。
      • 請確定使用者具有目標伺服器上的 「REPLICATION SLAVE」 許可權。
      • 請確定使用者在來源伺服器上具有「REPLICATION CLIENT」和「REPLICATION SLAVE」許可權,以便讀取和套用 Bin 記錄檔。
      • 若要在目標上建立數據表,用戶必須具有 「CREATE」 許可權。
      • 如果移轉具有 「DATA DIRECTORY」 或 「INDEX DIRECTORY」 資料分割選項的數據表,用戶必須具有 「FILE」 許可權。
      • 如果移轉至具有 「UNION」 選項的數據表,用戶必須具有對應至 MERGE 數據表的數據表的 「SELECT」、“UPDATE” 和 “DELETE” 許可權。
      • 如果移轉檢視,您必須具有「CREATE VIEW」許可權。 請記住,視檢視的內容而定,可能需要某些許可權。 如需詳細資訊,請參閱您版本專屬的 MySQL 檔,以取得「CREATE VIEW 語句」。
      • 如果移轉事件,用戶必須具有 「EVENT」 許可權。
      • 如果移轉觸發程式,用戶必須具有「觸發程序」許可權。
      • 如果移轉例程,用戶必須具有 「CREATE ROUTINE」 許可權。
    • 在目標彈性伺服器上設定伺服器參數,如下所示:
      • 設定 TLS 版本和require_secure_transport伺服器參數,以符合來源伺服器上的值。
      • 設定sql_mode伺服器參數,以符合來源伺服器上的值。
      • 在目標伺服器上設定伺服器參數,以符合來源伺服器上使用的任何非預設值。
      • 若要確保使用 DMS 時數據載入更快,請如所述設定下列伺服器參數。
        • max_allowed_packet – 設定為 1073741824 (亦即 1 GB),以防止因大型數據列而造成任何連線問題。
        • slow_query_log – 設定為 OFF 以關閉慢速查詢記錄。 這樣便能消除資料載入期間慢速查詢記錄所造成的額外負荷。
        • innodb_buffer_pool_size – 只能藉由相應增加 適用於 MySQL 的 Azure 資料庫 伺服器的計算來增加。 在移轉期間,從入口網站的定價層將伺服器相應增加為64個虛擬核心一般用途SKU,以增加innodb_buffer_pool_size。
        • innodb_io_capacity和innodb_io_capacity_max - 從 Azure 入口網站 中的伺服器參數變更為 9000,以改善 IO 使用率以優化移轉速度。
        • innodb_write_io_threads - 從 Azure 入口網站 中的伺服器參數變更為 4,以改善移轉速度。
    • 設定目標伺服器上的複本以符合來源伺服器上的複本。
    • 將下列伺服器管理功能從來源單一伺服器複寫到目標彈性伺服器:
      • 角色指派、角色、拒絕指派、傳統系統管理員、存取控制 (IAM)
      • 鎖定 (只讀和移除)
      • 警示
      • 工作
      • 資源健康狀態 警示

設定 DMS

部署和設定目標彈性伺服器之後,接下來您必須設定 DMS,將單一伺服器移轉至彈性伺服器。

註冊資源提供者

若要註冊 Microsoft.DataMigration 資源提供者,請執行下列步驟。

  1. 建立第一個 DMS 實例之前,請先登入 Azure 入口網站,然後搜尋並選取 [訂用帳戶]。 Screenshot of a Select subscriptions from Azure Marketplace.

  2. 選取您想要用來建立 DMS 實例的訂用帳戶,然後選取 [資源提供者]。 Screenshot of a Select Resource Provider.

  3. 搜尋 「移轉」一詞,然後針對 Microsoft.DataMigration 選取 [ 註冊]。 Screenshot of a Register your resource provider.

建立 資料移轉服務 (DMS) 實例

  1. 在 Azure 入口網站 中,選取 [+ 建立資源],搜尋字詞 “Azure 資料移轉服務”,然後從下拉式列表中選取 [Azure 資料移轉服務]。 Screenshot of a Search Azure Database Migration Service.

  2. [Azure 資料移轉服務] 畫面上,選取 [建立]。 Screenshot of a Create Azure Database Migration Service instance.

  3. 在 [選取移轉案例並 資料移轉服務] 頁面上,選取 [移轉案例] 下的 [適用於 MySQL 的 Azure 資料庫-Single Server] 作為來源伺服器類型,然後選取 [適用於 MySQL 的 Azure 資料庫 為目標伺服器類型],然後選取 [選取]。 Screenshot of a Select Migration Scenario.

  4. 在 [建立移轉服務] 頁面上的 [基本] 索引標籤上,於 [專案詳細數據] 底下選取適當的訂用帳戶,然後選取現有的資源群組或建立新的訂用帳戶。

  5. [實例詳細數據] 下,指定服務的名稱、選取區域,然後確認 已選取 Azure 作為服務模式。

  6. 在 [定價層] 右側,選取 [設定層]。 Screenshot of a Select Configure Tier.

  7. 在 [設定] 頁面上,為您的 DMS 實例選取具有 4 個虛擬核心的 進階版 定價層,然後選取 [套用]。 在建立 DMS 服務後至開始產生費用前的 6 個月 (183 天) 內,可免費使用 DMS 進階 4 個 vCore。 如需 DMS 成本和定價層的詳細資訊,請參閱 定價頁面Screenshot of a Select Pricing tier.

    接下來,我們需要指定 VNet,以提供 DMS 實例對來源單一伺服器和目標彈性伺服器的存取權。

  8. 在 [建立移轉服務] 頁面上,選取 [下一步:網络]。>>

  9. 在 [ 網络] 索引 標籤上,從清單中選取現有的 VNet,或提供要建立的新 VNet 名稱,然後選取 [ 檢閱 + 建立]。 如需詳細資訊,請參閱使用 Azure 入口網站 建立虛擬網路一文Screenshot of a Select Networking.

    重要

    您的 VNet 必須設定為同時存取來源單一伺服器和目標彈性伺服器,因此請務必:

    注意

    若要將標籤新增至服務,請選取 [下一步:卷標],前進至 [標記] 索引標籤。 將標籤新增至服務是選擇性的。

  10. 流覽至 [ 檢閱 + 建立] 索引標籤、檢閱設定、檢視字詞,然後選取 [ 建立]。 Screenshot of a Select Review+Create.

    DMS 實例的部署現在開始。 [部署正在進行中] 訊息會顯示幾分鐘,然後訊息會變更為 [您的部署] 完成

  11. 選取 [前往資源] 。 Screenshot of a Select Go to resource.

  12. 從資源概觀頁面識別 DMS 實例的 IP 位址,併為來源單一伺服器和目標彈性伺服器建立防火牆規則,以列出 DMS 實例的 IP 位址。

建立移轉專案

若要建立移轉專案,請執行下列步驟。

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

    Screenshot of a Locate all instances of Azure Database Migration Service.

  2. 在搜尋結果中,選取您建立的 DMS 實例,然後選取 [+ 新增移轉專案]。

    Screenshot of a Select a new migration project.

  3. 在 [新增移轉專案] 頁面上,指定專案的名稱,在 [來源伺服器類型] 選取方塊中,選取 [適用於 MySQL 的 Azure 資料庫 - 單一伺服器],在 [目標伺服器類型] 選取方塊中,選取 [適用於 MySQL 的 Azure 資料庫 - 彈性伺服器],在 [移轉活動類型] 選取方塊中,選取 [在線數據遷移],然後選取 [建立並執行活動]。

    注意

    選取 [僅 建立專案] 作為移轉活動類型,只會建立移轉專案;您稍後就可以執行移轉專案。

    Screenshot of a Create a new migration project.

設定移轉專案

若要設定 DMS 移轉專案,請執行下列步驟。

  1. 在 [ 選取來源] 畫面上,根據訂用帳戶、位置和資源群組找出伺服器。 系統會自動填入使用者名稱,然後提供來源伺服器的密碼。 Screenshot of an Add source details screen.

  2. 選取 [下一步:選取目標>>],然後在 [ 選取目標] 畫面上,根據訂用帳戶、位置和資源群組找出伺服器。 使用者名稱會自動填入,然後提供目標彈性伺服器的密碼。 Screenshot of a Select target.

  3. 選取 [下一步:選取資料庫],然後在 [選取資料庫>>] 索引標籤的 [伺服器移轉選項] 底下,選取 [移轉所有適用的資料庫] 或 [選取資料庫] 底下,選取您要移轉的伺服器物件。

    注意

    現在 已選取 [移轉所有適用的資料庫] 選項,此選項將會移轉所有使用者建立的資料庫和數據表。 請注意,由於 適用於 MySQL 的 Azure 資料庫 - 彈性伺服器不支援混合大小寫資料庫,因此不會包含來源上的混合案例資料庫以進行在線移轉。

Screenshot of a Select database.

  1. 在 [選取資料庫]段的 [源資料庫] 下,選取要移轉的資料庫。

    您指定之資料庫中的非資料表物件將會移轉,而您未選取的專案將會略過。 您只能選取名稱符合來源和目標伺服器上的來源和目標資料庫。 如果您在目標伺服器上選取不存在之來源伺服器上的資料庫,則會在目標伺服器上建立資料庫。

  2. 選取 [下一步:選取數據表>> ] 以流覽至 [ 選取數據表 ] 索引標籤。

    在索引卷標填入之前,DMS 會從來源和目標上選取的資料庫擷取數據表,然後判斷數據表是否存在並包含數據。

  3. 選取您要移轉的數據表。

    如果目標伺服器上沒有選取的源數據表,在線移轉程式會確保數據表架構和數據已移轉至目標伺服器。 Screenshot of a Select Tables.

    DMS 會驗證您的輸入,如果驗證通過,您將能夠開始移轉。

  4. 設定架構移轉之後,請選取 [ 檢閱並開始移轉]。

    注意

    如果您嘗試針對失敗的移轉進行疑難解答,您只需要流覽至 [設定移轉設定 ] 索引標籤。

  5. 在 [摘要] 索引標籤的 [活動名稱] 文字框中,指定移轉活動的名稱,然後檢閱摘要,以確保來源和目標詳細數據符合您先前指定的內容。 Screenshot of a Select Summary.

  6. 選取 [ 開始移轉]。

    [移轉活動] 視窗隨即出現,而活動的 [狀態] 為 [初始化]。 [狀態] 會在數據表移轉開始時變更為 [正在執行]。 Screenshot of a Running status.

監視移轉

  1. 完成初始載入活動之後,流覽至 [初始載入] 索引標籤,以檢視完成狀態和已完成的數據表數目。 Screenshot of a completed initial load migration.

    初始載入活動完成後,您會自動流覽至 [複寫資料變更] 索引標籤。 您可以監視移轉進度,因為畫面每隔 30 秒自動重新整理一次。

  2. 選取 [ 重新 整理] 以更新顯示,並視需要檢視來源後面的秒數。

    Screenshot of a Monitoring migration.

  3. 監視來源後面的秒數,並在接近0時,流覽至移轉活動畫面頂端的 [開始完全移轉] 功能表索引標籤,以繼續開始完全移轉。

  4. 在您準備好執行完全移轉之前,請遵循完全移轉視窗中的步驟。

  5. 完成所有步驟之後,請選取 [ 確認],然後選取 [ 套用]。 Screenshot of a Perform cutover.

執行移轉後活動

當移轉完成時,請務必完成下列移轉後活動。

  • 針對目標資料庫執行應用程式的健全性測試,以認證移轉。

  • 更新連接字串,以指向新的彈性伺服器。

  • 在您確定應用程式持續性之後,請刪除來源單一伺服器。

  • 如果您為加速移轉而擴大了目標彈性伺服器,則可根據下表中的詳細資料,依據來源單一伺服器的定價層和虛擬核心,選取目標彈性伺服器的計算大小和計算層,將其調整回原本大小。

    單一伺服器定價層 單一伺服器虛擬核心 彈性伺服器計算大小 彈性伺服器計算層
    基本 1 可高載 Standard_B1s
    基本 2 可高載 Standard_B2s
    一般用途 4 一般用途 標準 D4ds_v4
    一般用途 8 一般用途 標準 D8ds_v4
  • 若要清除 DMS 資源,請執行下列步驟:

    1. 在 Azure 入口網站中,選取 [所有服務],搜尋 Azure 資料庫移轉服務,然後選取 [Azure 資料庫移轉服務]
    2. 從搜尋結果中選取您的移轉服務執行個體,然後選取 [刪除服務]
    3. 在確認對話方塊中的 [鍵入資料庫移轉服務名稱] 文字方塊中,指定執行個體的名稱,然後選取 [刪除]

移轉最佳做法

執行移轉時,請務必考慮下列最佳做法。

  • 在探索和評估過程中,請採用伺服器 SKU、CPU 使用量、儲存體、資料庫大小和擴充功能,做為一些重要資料,以協助移轉。
  • 在移轉生產環境之前先執行測試移轉:
    • 測試移轉對於確保您涵蓋資料庫移轉的所有層面很重要,包括應用程式測試。 最佳做法是從完全針對測試目的執行移轉開始。 新開始的移轉進入複寫資料變更階段後,只要使用彈性伺服器目標來執行測試工作負載即可。 使用該目標來測試應用程式,以確保預期的效能和結果。 如果您要移轉至較高的 MySQL 版本,請測試應用程式相容性。
    • 測試完成後,您可以移轉生產資料庫。 此時,您必須完成生產移轉的日期和時間。 在理想情況下,目前的應用程式使用量很低。 所有需要參與的利害關係人都應有空並準備就緒。 生產移轉需要密切監視。 若要進行線上移轉,必須先完成複寫,才能執行完全移轉,以避免資料遺失。
  • 重新導向所有相依應用程式以存取新的主要資料庫,並將來源伺服器設為唯讀。 然後,開啟應用程式以供生產環境使用。
  • 應用程式在目標彈性伺服器上開始執行後,請密切監視資料庫效能,以了解是否需要進行效能微調。

下一步