教學課程:使用 DMS 將 MySQL 遷移至離線 適用於 MySQL 的 Azure 資料庫

您可以使用 Azure 資料移轉服務,以高速數據遷移功能,從外部 MySQL 實例順暢地移轉至 適用於 MySQL 的 Azure 資料庫。 在本教學課程中,我們將使用 Azure 資料移轉服務 中的脫機移轉活動,將範例資料庫從 MySQL 5.7 的內部部署實例移轉至 適用於 MySQL 的 Azure 資料庫 (v5.7)。 雖然文章假設來源是 MySQL 資料庫實例,且目標為 適用於 MySQL 的 Azure 資料庫,但只要變更來源伺服器名稱和認證,就可以用來從一個 適用於 MySQL 的 Azure 資料庫 移轉至另一個實例。 此外,也支援從舊版 MySQL 伺服器(v5.6 和更新版本)移轉至更高版本。

注意

如需此移轉體驗的PowerShell型可編寫腳本版本,請參閱可編寫腳本的離線移轉至 適用於 MySQL 的 Azure 資料庫

注意

MySQL 和 Amazon Aurora 的 Amazon Relational Database Service (RDS)也支援作為移轉來源。

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

  • 建立 DMS 實例。
  • 在 DMS 中建立 MySQL 移轉專案。
  • 使用 DMS 移轉 MySQL 架構。
  • 執行移轉。
  • 監視移轉。

必要條件

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

調整適用於 MySQL 的 Azure 資料庫目標執行個體的大小

若要使用 Azure 資料移轉服務 準備目標 適用於 MySQL 的 Azure 資料庫 伺服器以加快數據載入的速度,建議使用下列伺服器參數和組態變更。

  • max_allowed_packet – 設定為 1073741824 (亦即 1GB),以防止因大型數據列而發生任何連線問題。

  • slow_query_log – 設定為 OFF 以關閉慢速查詢記錄。 這樣便能消除資料載入期間慢速查詢記錄所造成的額外負荷。

  • query_store_capture_mode – 設定為 NONE 以關閉 查詢存放區。 這樣便能消除查詢存放區取樣活動所造成的額外負荷。

  • innodb_buffer_pool_size – 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 & innodb_write_io_threads - 從 Azure 入口網站 中的伺服器參數變更為 4,以改善移轉速度。

  • 擴大儲存層 – 適用於 MySQL 的 Azure 資料庫伺服器的 IOP 會隨著儲存層的增加而逐漸增加。

    • 在 [單一伺服器部署] 選項中,為了加快載入,建議您增加儲存層,以增加佈建的 IOP。
    • 在 [彈性伺服器部署] 選項中,建議您調整 (增加或減少) IOPS,而不論記憶體大小為何。
    • 請注意,儲存體只能擴大,而不能縮小。
  • 根據下表中的詳細資料,依據來源單一伺服器的定價層和虛擬核心,選取目標彈性伺服器的計算大小和計算層。

    單一伺服器定價層 單一伺服器虛擬核心 彈性伺服器計算大小 彈性伺服器計算層
    基本* 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 虛擬核心計算,以加快移轉速度。 移轉完成之後,請按照本文稍後執行移轉後活動一節中的計算大小建議,將目標伺服器縮減為所需的計算大小。

移轉完成後,您可以將伺服器參數和組態還原為工作負載所需的值。

設定 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.

建立 資料移轉服務 實例

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

    Azure Marketplace

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

    Create Azure Database Migration Service instance

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

  4. 選取定價層並移至網路畫面。 離線移轉功能僅適用於 進階版定價層。

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

    Configure Azure Database Migration Service basic settings

  5. 從清單中選取現有的虛擬網路,或提供要建立的新虛擬網路名稱。 移至 [檢閱 + 建立] 畫面。 您可以選擇性地使用標籤畫面將標籤新增至服務。

    虛擬網路可讓 Azure 資料移轉服務 存取來源 SQL Server 和目標 Azure SQL 資料庫 實例。

    Configure Azure Database Migration Service network settings

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

  6. 檢閱組態,然後選取 [建立 ] 以建立服務。

    Azure Database Migration Service create

建立移轉專案

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

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

    Locate all instances of Azure Database Migration Service

  2. 從搜尋結果中選取您的移轉服務實例,然後選取 [+ 新增移轉專案]。

    Create a new migration project

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

    Create Database Migration Service Project

    注意

    或者,您也可以選擇 [建立專案] 來立即 建立移轉專案,稍後再執行移轉。

設定移轉專案

  1. 在 [ 選取來源] 畫面上,指定來源 MySQL 實例的聯機詳細數據,然後選取 [ 下一步:選取目標]>>

    Add source details screen

  2. 在 [選取目標] 畫面上,指定目標 適用於 MySQL 的 Azure 資料庫 實例的聯機詳細數據,然後選取 [下一步:選取資料庫]>>

    Add target details screen

  3. 在 [ 選取資料庫] 畫面上,對應來源和目標資料庫以進行移轉,然後選取 [ 下一步:設定移轉設定>>]。 您可以選取 [ 將來源伺服器設為只讀 ] 選項,讓來源成為只讀,但請注意這是伺服器層級設定。 如果選取,則會將整個伺服器設定為唯讀,而不只是選取的資料庫。

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

  4. 在 [ 設定移轉設定 ] 畫面上,選取要加入移轉的數據表,然後選取 [ 下一步:摘要>>]。 如果目標數據表具有任何數據,則預設不會選取它們,但您可以明確選取它們,而且在開始移轉之前會加以截斷。

    Select tables screen

  5. 在 [摘要] 畫面的 [活動名稱] 文本框中,指定移轉活動的名稱,並檢閱摘要,以確保來源和目標詳細數據符合您先前指定的內容。

    Migration project summary

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

    Running migration

監視移轉

  1. 在移轉活動畫面上,選取 [重新 整理] 以更新顯示,並查看已完成數據表數目的進度。

  2. 您可以按下活動畫面上的資料庫名稱,以查看每個資料表在移轉時的狀態。 選取 [ 重新整理 ] 以更新顯示。

    Monitoring migration

完成移轉

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

    Complete migration

移轉後活動

離線移轉中的移轉移轉是應用程式相依程式,此程式已超過本檔的範圍,但會規定下列移轉後活動:

  1. 根據應用程式需求建立登入、角色和許可權。
  2. 在移轉前步驟期間,重新建立目標資料庫上擷取的所有觸發程式。
  3. 針對目標資料庫執行應用程式的健全性測試,以認證移轉。

清除資源

如果您不打算繼續使用 資料移轉服務,您可以使用下列步驟刪除服務:

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

    Locate all instances of DMS

  2. 從搜尋結果中選取您的移轉服務實例,然後選取 [ 刪除服務]。

    Delete the migration service

  3. 在確認對話框中,在 [類型資料庫移轉服務名稱] 文字框中輸入服務 名稱 ,然後選取 [ 刪除]。

    Confirm migration service delete

下一步

  • 如需使用 DMS 執行移轉時已知問題和限制的相關信息,請參閱常見問題 - Azure 資料移轉服務 一文
  • 如需在使用 DMS 時針對源資料庫連線問題進行疑難解答,請參閱連線源資料庫的問題一文
  • 如需 Azure 資料移轉服務 的相關信息,請參閱什麼是 Azure 資料移轉服務?一文
  • 如需 適用於 MySQL 的 Azure 資料庫 的相關信息,請參閱什麼是 適用於 MySQL 的 Azure 資料庫?一文
  • 如需透過PowerShell使用 DMS 的指引,請參閱 PowerShell:使用 DMS 從 MySQL 資料庫執行離線移轉至 適用於 MySQL 的 Azure 資料庫 一文