共用方式為


教學課程:透過 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 結構描述。
  • 執行移轉。
  • 監視移轉。
  • 執行移轉後步驟。
  • 實作執行移轉的最佳做法。

必要條件

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

  • 建立或使用適用於 MySQL 的 Azure 資料庫 - 單一伺服器 (來源伺服器) 的現有執行個體。
  • 若要順利完成線上移轉,請確定已備妥下列必要條件:
    • 使用您選擇的 MySQL 命令列工具,透過執行命令 SHOW VARIABLES LIKE 'log_bin’,驗證來源伺服器上已啟用 log_bin。 如果未啟用log_bin,請為您的單一伺服器實例建立讀取複本,然後加以刪除。 此作業會將參數log_bin設定為 ON,然後您可以觸發移轉作業。
    • 請確定使用者具有來源伺服器上的 “REPLICATION CLIENT” 和 “REPLICATION SLAVE” 權限,以便讀取和套用間隔記錄。
    • 如果您將線上移轉設為目標,則在來源伺服器上設定 binlog_expire_logs_seconds 參數,以確保在複本認可變更之前不會清除 binlog 檔案。 我們建議至少準備兩天來開始。 成功完全移轉後,您可以重設值。
  • 若要順利完成結構描述移轉,在來源伺服器上執行移轉的使用者需要下列權限:
    • 在來源上伺服器層級的 "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 不支援移轉物件的 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 陳述式複寫支援這裡所列的所有資料管理 – 帳戶管理陳述式,但下列命令除外:
      • 設定預設角色
      • 設定密碼
    • Azure DMS 陳述式複寫支援這裡列出的所有資料管理 – 資料表維修陳述式,但下列命令除外:
      • 修復資料表
      • 分析資料表
      • CHECKSUM 資料表

使用 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” 權限,以套用間隔記錄。
      • 請確定使用者具有目標伺服器上的 “REPLICATION SLAVE” 權限。
      • 請確定使用者具有來源伺服器上的 “REPLICATION CLIENT” 和 “REPLICATION SLAVE” 權限,以便讀取和套用間隔記錄。
      • 若要在目標上建立資料表,使用者必須具有 “CREATE” 權限。
      • 如果移轉的資料表具有 “DATA DIRECTORY” 或 “INDEX DIRECTORY” 分割選項,使用者必須具有 “FILE” 權限。
      • 如果移轉至具有 “UNION” 選項的資料表,使用者必須對於對應至 MERGE 資料表的資料表具有 “SELECT”、“UPDATE,” 和 “DELETE” 的權限。
      • 如果移轉檢視,您必須具有 “CREATE VIEW” 權限。 請記住,根據檢視的內容,某些權限可能是必要的。 請參閱您版本專屬的 MySQL 文件,以取得 “CREATE VIEW STATEMENT” 的詳細資訊。
      • 如果移轉事件,使用者必須具有 “EVENT” 權限。
      • 如果移轉觸發程序,使用者必須具有 “TRIGGER” 權限。
      • 如果移轉常式,使用者必須具有 “CREATE ROUTINE” 權限。
    • 在目標彈性伺服器上設定伺服器參數,如下所示:
      • 設定 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 執行個體,然後選取 [+ 新移轉專案]

    選取新移轉項目的螢幕快照。

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

    注意

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

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

設定移轉專案

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

  1. 在 [選取來源] 畫面上,根據訂用帳戶、位置和資源群組找出伺服器。 系統會自動填入使用者名稱,然後提供來源伺服器的密碼。 [新增來源詳細數據] 畫面的螢幕快照。

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

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

    注意

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

選取資料庫的螢幕快照。

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

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

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

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

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

    如果選取的來源資料表不存在於目標伺服器,則線上移轉流程會確保資料表結構描述和資料已移轉至目標伺服器。 選取數據表的螢幕快照。

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

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

    注意

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

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

  6. 選取 [開始移轉]

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

監視移轉

  1. 初始負載活動完成後,瀏覽至 [初始負載] 索引標籤,以檢視完成狀態和已完成的資料表數目。 已完成初始載入移轉的螢幕快照。

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

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

    監視移轉的螢幕快照。

  3. 監視落後來源秒數,一旦接近0,請瀏覽至移轉活動畫面上方的 [開始完全移轉] 功能表,以繼續開始完全移轉。

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

  5. 完成所有步驟之後,請選取 [確認],然後選取 [套用]執行完全移轉的螢幕快照。

執行移轉後活動

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

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

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

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

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

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

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

移轉最佳做法

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

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

下一步