共用方式為


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

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

注意

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

重要

針對線上移轉,您可以使用 DMS 支援的啟用交易一致性功能與資料輸入複寫複寫變更。 此外,您可以遵循這裡的教學課程,使用線上移轉案例進行移轉。

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

  • 實作使用 DMS 建立彈性伺服器以加快資料負載的最佳做法。
  • 建立及並設定目標彈性伺服器。
  • 建立 DMS 執行個體。
  • 在 DMS 中建立 MySQL 移轉專案。
  • 使用 DMS 移轉 MySQL 結構描述。
  • 執行移轉。
  • 監視移轉。
  • 執行移轉後步驟。
  • 實作執行移轉的最佳做法。

必要條件

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

  • 建立或使用適用於 MySQL 的 Azure 資料庫 - 單一伺服器 (來源伺服器) 的現有執行個體。
  • 若要順利完成結構描述移轉,在來源伺服器上執行移轉的使用者需要下列權限:
    • 在來源上伺服器層級的 "SELECT” 權限。
    • 如果移轉檢視,使用者必須在來源伺服器上具有 “SHOW VIEW” 權限,以及在目標伺服器上具有 “CREATE VIEW” 權限。
    • 如果移轉觸發程序,使用者必須在來源和目標伺服器上具有 “TRIGGER” 權限。
    • 如果移轉常式 (程序和/或函式),使用者必須具有在目標上伺服器層級授與的 “CREATE ROUTINE””ALTER ROUTINE” 權限。
    • 如果移轉事件,使用者必須在來源和目標伺服器上具有 “EVENT” 權限。
    • 如果移轉使用者/登入,使用者必須在目標伺服器上具有 “CREATE USER” 權限。
    • 在目標上伺服器層級的 "DROP" 權限,以便卸除可能已經存在的資料表。 例如,重試移轉時。
    • 在目標上伺服器層級的 "REFERENCES" 權限,以便建立具有外部索引鍵的資料表。
    • 如果移轉至 MySQL 8.0,使用者必須在目標伺服器上具有 "SESSION_VARIABLES_ADMIN" 權限。
    • 在目標上伺服器層級的 "CREATE” 權限。
    • 在目標上伺服器層級的 "INSERT” 權限。
    • 在目標上伺服器層級的 "UPDATE” 權限。
    • 在目標上伺服器層級的 "DELETE” 權限。

限制

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

  • 移轉非資料表物件時,DMS 不支援重新命名資料庫。
  • 當移轉至已啟用 bin_log 的目標伺服器時,請務必啟用 log_bin_trust_function_creators 以允許建立常式和觸發程序。
  • 移轉結構描述時,DMS 不支援在目標伺服器上建立資料庫。
  • 目前,DMS 不支援移轉物件的 DEFINER 子句。 所有在來源上具有 definer 的物件類型都會卸除,並在移轉之後,資料表的預設 definer 將設定為用來執行移轉的登入。
  • 目前,DMS 僅支援在資料移動過程中移轉結構描述。 如果未選取任何資料移動,則不會進行結構描述移轉。 請注意,選取用於結構描述移轉的資料表也會選取該資料表用於資料移動。

使用 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 資料庫彈性伺服器
  • 在設定新建立的目標彈性伺服器旁,請依照下列方式繼續進行:
    • 執行移轉的使用者需要下列權限:
      • 若要在目標上建立資料表,使用者必須具有 “CREATE” 權限。
      • 如果移轉至具有 “UNION” 選項的資料表,使用者必須對於對應至 MERGE 資料表的資料表具有 “SELECT”、“UPDATE,” 和 “DELETE” 的權限。
      • 如果移轉檢視,您必須具有 “CREATE VIEW” 權限。 請記住,根據檢視的內容,某些權限可能是必要的。 請參閱您版本專屬的 MySQL 文件,以取得 “CREATE VIEW STATEMENT” 的詳細資料
      • 如果移轉事件,使用者必須具有 “EVENT” 權限。
      • 如果移轉觸發程序,使用者必須具有 “TRIGGER” 權限。
      • 如果移轉常式,使用者必須具有 “CREATE ROUTINE” 權限。
    • 建立目標資料庫,但不需要填入資料表/檢視表等等。
      • 在開始移轉之前,請先設定適當的字元、定序,以及任何其他適用的結構描述設定,因為這可能會影響某些物件定義中的 DEFAULT 集合。
      • 此外,如果移轉非資料表物件,請務必使用與來源上所使用目標結構描述相同的名稱。
    • 在目標彈性伺服器上設定伺服器參數,如下所示:
      • 設定 TLS 版本和 require_secure_transport 伺服器參數,以符合來源伺服器上的值。
      • 設定 sql_mode 伺服器參數,以符合來源伺服器上的值。
      • 在目標伺服器上設定伺服器參數,以符合在來源伺服器上使用的任何非預設值。
      • 若要確保使用 DMS 時加快資料負載,請如所述設定下列伺服器參數。
        • max_allowed_packet – 設定為 1073741824 (也就是 1 GB),以防止因為大型資料列而造成任何連線問題。
        • slow_query_log – 設定為 [關閉],以關閉慢速查詢記錄。 這樣便能消除資料載入期間慢速查詢記錄所造成的額外負荷。
        • 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 入口網站,然後搜尋並選取 [訂用帳戶]Azure Marketplace 的螢幕快照。

  2. 選取您要用來建立 DMS 執行個體的訂用帳戶,然後選取 [資源提供者]選取資源提供者的螢幕快照。

  3. 搜尋「移轉」一詞,然後搜尋 Microsoft.DataMigration,並選取 [註冊]選取註冊的螢幕快照。

建立資料庫移轉服務 (DMS) 執行個體

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

  2. 在 [Azure 資料庫移轉服務] 畫面上,選取 [建立]建立 Azure 資料移轉服務 實例的螢幕快照。

  3. 在 [選取移轉案例和資料庫移轉服務] 頁面的 [移轉案例]下,選取 [適用於 MySQL 的 Azure 資料庫-單一伺服器] 作為來源伺服器類型,然後選取 [適用於 MySQL 的 Azure 資料庫] 作為目標伺服器類型,接著選取 [選取]選取移轉案例的螢幕快照。

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

  5. 在 [執行個體詳細資料] 下,指定服務的名稱、選取區域,然後確認已選取 Azure 做為服務模式。

  6. 在 [定價層] 右側,選取 [設定層]選取設定層的螢幕快照。

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

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

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

  9. 在 [網路] 索引標籤上,從清單中選取現有的 VNet,或提供要建立的新 VNet 名稱,然後選取 [檢閱 + 建立]

    如需詳細資訊,請參閱使用 Azure 入口網站建立虛擬網路一文。 [選取網络] 的螢幕快照。

    重要

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

    • 建立伺服器層級防火牆規則,或為來源和目標適用於 MySQL 的 Azure 資料庫伺服器設定 VNET 服務端點,以允許 Azure 資料庫移轉服務的 VNet存取來源和目標資料庫。
    • 請確定您的 VNet 網路安全性群組 (NSG) 規則不會封鎖 ServiceBus、儲存體和 Azure 監視器 ServiceTag 的輸出連接埠 443。 如需 VNet NSG 流量篩選的詳細資訊,請參閱使用網路安全性群組來篩選網路流量

    注意

    如果您想要將標籤新增至服務,請先選取 [下一步:標籤] 以先移至 [標籤] 索引標籤。 新增標籤至服務是選擇性的。

  10. 瀏覽至 [檢閱 + 建立] 索引標籤、檢閱設定、檢視字詞,然後選取 [建立]選取檢閱+建立的螢幕快照。

    DMS 執行個體的部署現在開始。 部署進行中的訊息出現幾分鐘,然後訊息會變更為您的部署已完成

  11. 選取 [前往資源] 。 選取 [移至資源] 的螢幕快照。

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

建立移轉專案

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

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

    [尋找所有 Azure 資料移轉服務 實例的螢幕快照。

  2. 在搜尋結果中,選取您建立的 DMS 執行個體,然後選取 [+ 新移轉專案]

    CSelect 新移轉項目的螢幕快照。

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

    注意

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

    建立新移轉項目的螢幕快照。

設定移轉專案

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

  1. 若要繼續進行離線移轉,在畫面上設定 [選取來源] 之前,請開啟新的視窗索引標籤,然後瀏覽至 Azure 入口網站上來源伺服器的 [概觀] 頁面,然後前往 [伺服器參數] 刀鋒視窗。 將來源伺服器的 read_only 伺服器參數值設定為 [開啟]

    在開始移轉之前,藉由更新伺服器參數,將來源伺服器設定為唯讀模式,以防止在移轉期間於來源伺服器上執行寫入/刪除作業,這可確保目標資料庫在移轉來源時的資料完整性。

    注意

    或者,如果您正在執行線上移轉,您會在 [選取來源] 畫面上選取 [啟用交易一致性] 核取方塊。 如需一致備份的詳細資訊,請參閱 MySQL 一致備份

  2. 瀏覽回移轉專案設定畫面,然後在 [選取來源] 畫面上,指定來源 MySQL 執行個體的連線詳細資料。 [新增來源詳細數據] 畫面的螢幕快照。

  3. 選取 [下一步:選取目標>>],然後在 [選取目標] 畫面上,指定目標彈性伺服器的連線詳細資料。 選取目標的螢幕快照。

  4. 選取 [下一步:選取資料庫>>],接著在 [選取資料庫] 索引標籤的 [預覽] 下選取伺服器物件,然後選取您要移轉的伺服器物件。 選取資料庫的螢幕快照。

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

    您指定之資料庫中的非資料表物件將會被移轉,而您未選取的項目將會被跳過。

  6. 選取 [下一步:選取資料庫>>] 以瀏覽至 [選取資料表] 索引標籤。

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

  7. 選取您想要移轉的資料表。

    如果您在來源資料庫中選取目標資料庫上不存在的資料表,則預設會選取 [移轉結構描述] 底下的方塊。 對於確實存在於目標資料庫中的資料表,附註指出選取的資料表已經包含且將會被截斷。 此外,如果目標伺服器上的資料表結構描述不符合來源上的結構描述,則會在移轉繼續之前卸除該資料表。 選取數據表的螢幕快照。

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

  8. 設定結構描述移轉後,請選擇 [檢閱並開始移轉]

    注意

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

  9. 在 [摘要] 索引標籤的 [活動名稱] 文字輸入框中,指定移轉活動的名稱,然後檢閱摘要,以確定來源和目標詳細資料都與您先前所指定的相符。 選取摘要的螢幕快照。

  10. 選取 [開始移轉]。 [移轉活動] 視窗隨即出現,且活動的 [狀態] 為 [正在初始化]。 當資料表移轉開始時,[狀態] 會變更為 [執行中]。

監視移轉

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

  2. 若要查看移轉期間每個資料表的狀態,請選取資料庫名稱,然後選取 [重新整理] 以更新顯示。

  3. 選取 [重新整理] 以更新顯示,直到移轉的狀態顯示為 [已完成] 為止。 移轉狀態的螢幕快照。

執行移轉後活動

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

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

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

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

  • 如果您擴大目標彈性伺服器以加快移轉速度,請根據下表中來源單一伺服器定價層與虛擬核心的詳細資料,選取目標彈性伺服器的計算大小和計算層級,以調整目標彈性伺服器。

    單一伺服器定價層 單一伺服器虛擬核心 彈性伺服器計算大小 彈性伺服器計算層
    基本 1 可高載 Standard_B1s
    基本 2 可高載 Standard_B2s
    一般用途 4 一般用途 標準 D4ds_v4
    一般用途 8 一般用途 標準 D8ds_v4
  • 清除資料移轉服務資源:

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

移轉最佳做法

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

  • 在探索和評估過程中,請採用伺服器 SKU、CPU 使用量、儲存體、資料庫大小和擴充功能,做為一些重要資料,以協助移轉。
  • 規劃每個資料庫的移轉模式。 針對較簡單的移轉和較小的資料庫,請考慮使用離線模式。
  • 在移轉至生產環境之前執行測試移轉:
    • 測試移轉對於確保您涵蓋資料庫移轉的所有層面十分重要,包括應用程式測試。 如果您要移轉至較高的 MySQL 版本,請測試應用程式相容性。
    • 測試完成後,您可以移轉生產資料庫。 此時,您必須完成生產移轉的日期和時間。 在理想情況下,目前的應用程式使用量很低。 所有需要參與的利害關係人都應有空並準備就緒。 生產移轉需要密切監視。
  • 重新導向所有相依應用程式以存取新的主要資料庫,並開啟應用程式以供生產環境使用。
  • 應用程式開始在目標彈性伺服器目標上執行之後,請密切監視資料庫效能,以查看是否需要進行效能微調。

下一步