共用方式為


從適用於 MySQL 的 Azure 資料庫 – 單一伺服器就地移轉至彈性伺服器

適用於: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器

重要

某些單一伺服器執行個體可能需要強制輸入,才能執行成功就地自動移轉。 檢閱 Azure 入口網站上 [移轉] 刀鋒視窗中的移轉詳細資料,以提供這些輸入。 未在排程移轉的 2 天前提供強制輸入,會導致將移轉重新排程到較晚的日期。

從適用於 MySQL 的 Azure 資料庫 - 單一伺服器就地自動移轉彈性伺服器是單一伺服器資料庫工作負載在具有基本、一般用途或記憶體最佳化 SKU,以及未啟用複雜功能 (讀取複本、虛擬網路、雙重基礎結構加密、服務端點/虛擬網路規則) 的計劃性維護期間就地移轉。 合格的伺服器是由服務識別,並會傳送進階通知詳細資料步驟,以檢閱移轉詳細資料。

就地移轉在計劃性維護期間提供高度復原性和自我修復的離線移轉體驗,一般用途和記憶體最佳化 SKU 停機時間不到 5 分鐘,基本 SKU 停機時間不到 30 分鐘。 其使用備份和還原技術來加快移轉時間。 這項移轉會移除手動移轉伺服器的額外負荷,並確保您可以利用彈性伺服器的優點,包括更好的價格與效能、細微控制資料庫組態,以及自訂維護時段。 以下描述是移轉的主要階段:

  • 部署目標彈性伺服器,從來源單一伺服器繼承所有功能集和屬性 (包括伺服器參數和防火牆規則)。 來源單一伺服器設定為唯讀,且來源單一伺服器的備份會複製到目標彈性伺服器。
  • DNS 交換器和完全移轉在計劃性維護期間內順利執行,停機時間最短,允許在移轉後維護相同的連接字串。 用戶端應用程式可順暢地連線到目標彈性伺服器,而不需要任何使用者驅動的手動更新。 除了在移轉的彈性伺服器上支援兩種連接字串格式 (單一和彈性伺服器),移轉的彈性伺服器也同時支援兩種使用者名稱格式:username@server_name 和使用者名稱。
  • 移轉的彈性伺服器已上線,現在可以透過 Azure 入口網站/CLI 進行管理。 移轉後七天會刪除已停止的單一伺服器。

注意

如果您的單一伺服器執行個體上有基本 SKU,系統會移轉已排程的執行個體,停機時間最多 30 分鐘。 執行個體會移轉至較高的一般用途 SKU,以確保成功移轉,並在 24-48 小時內降級為高載 SKU。 如果移轉至高載 SKU 之後,您的執行個體因 CPU 工作負載繁重而用盡,請考慮升級為彈性伺服器執行個體上的一般用途 SKU。

注意

如果您的單一伺服器執行個體具有一般用途 V1 儲存體,則您的排程執行個體將在排程移轉前 12 小時進行額外的重新啟動作業。 此重新啟動作業目的是先啟用將執行個體升級至一般用途 V2 儲存體所需的 log_bin 伺服器參數,然後再進行就地自動移轉。

資格

如果您擁有單一伺服器工作負載,且沒有啟用複雜功能 (讀取複本、虛擬網路、雙基礎結構加密、服務端點/VNet 規則),您現在可以透過 Azure 支援票證提交您的伺服器詳細資料,以提名自己以進行自動移轉 (如果您尚未由服務安排自動移轉的話)。

為了讓不符合資格的伺服器符合自動移轉資格,請按下列步驟進行操作:

  • 單一伺服器執行個體應處於就緒狀態,而且不應該在計劃性維護期間處於停止狀態,以便進行自動移轉。
  • 如果適用於 MySQL 的 Azure 資料庫來源單一伺服器的引擎版本為 v8.x,請務必將來源伺服器的 .NET 用戶端驅動程式版本升級至 8.0.32,以避免移轉至彈性伺服器之後發生任何編碼不相容的問題。
  • 如果您的來源適用於 MySQL 的 Azure 資料庫引擎版本為 v8.x,由於彈性伺服器已淘汰舊版 TLS,因此請確保先將您的來源伺服器 TLS 版本從 v1.0 或 v1.1 升級至 TLS v1.2,然後再進行移轉。
  • 如果您的伺服器上有讀取複本,請卸除讀取複本。 您可以在自動移轉之後再設定讀取複本。
  • 如果您的伺服器已啟用服務端點 (VNet 規則) 或虛擬網路組態,請考慮將其卸除,或移至單一伺服器執行個體上的 Private Link 功能。
  • 如果您的伺服器已啟用雙重基礎結構加密,請考慮移至單一伺服器執行個體上的客戶自控金鑰 (CMK) 功能。

設定移轉警示

符合就地自動移轉資格的伺服器會由服務傳送預先通知。

以下描述的是檢查及設定自動移轉通知的方式:

  • 排程自動移轉之單一伺服器的訂用帳戶擁有者會收到電子郵件通知。
  • 依照這裡的步驟,設定服務健康情況警示以透過電子郵件/簡訊接收就地移轉排程和進度通知。
  • 依照這裡的步驟,檢查 Azure 入口網站上的就地移轉通知

檢閱和設定移轉排程和詳細資訊

以下描述的是在您收到就地自動移轉通知之後,檢閱移轉排程的方式:

注意

移轉排程會在排程的移轉期間前 2 天鎖定,在此之後您就無法重新排程。

  • 執行個體的單一伺服器概觀頁面會顯示入口網站橫幅,其中包含移轉排程的相關資訊。

  • 針對排程進行自動移轉的單一伺服器,新的移轉刀鋒視窗會在入口網站上醒目提示。 您可以瀏覽至單一伺服器執行個體的 [移轉] 刀鋒視窗,以檢閱移轉排程。

  • 如果您想要延遲移轉,您可以瀏覽至 Azure 入口網站上單一伺服器執行個體的 [移轉] 刀鋒視窗,並在一個月內選取另一個移轉視窗來重新排程移轉,一次延遲一個月。

  • 如果您的單一伺服器具有一般用途 SKU,您也可以選擇在檢閱移轉排程時啟用高可用性。 由於高可用性只能在 MySQL 彈性伺服器建立期間啟用,因此強烈建議您在檢閱移轉排程時啟用此功能。

  • 如果單一伺服器執行個體已啟用一或多個 Private Link、客戶自控金鑰 (CMK) 和 Microsoft Entra Admin,則就地自動移轉需要私人端點、CMK 和 Microsoft Entra Admin 的必要輸入,才能從單一伺服器執行個體移轉至目標彈性伺服器執行個體。 使用者輸入必須在排定移轉時間範圍的前 2 天提供。 如果未在鎖定移轉詳細資料之前提供使用者輸入,您的移轉將會重新安排到稍後的時間點。 提供所有輸入之後,請務必在自動移轉精靈中儲存組態。 提供使用者輸入的步驟:

    • 瀏覽至單一伺服器執行個替的 [移轉] 刀鋒視窗,然後選取編輯排定移轉。
    • 在 [自動移轉詳細資料] 區段中, 按一下 [驗證] 按鈕,以驗證並儲 存ARM API 連線來移轉您的伺服器。
    • 如果您的伺服器已設定 [Microsoft Entra Admin],您可以在自動移轉精靈的 [Microsoft Entra Admin] 區段下提供輸入:
      • 移轉目標伺服器的 Microsoft Entra Admin 需要將 [身分識別] 新增至適用於 MySQL 的 Azure 資料庫– 彈性伺服器。 身分識別需要獲取下列權限:User.Read.All, GroupMember.Read.All 和 Application.Read.All。 請選取適當的使用者指派受控識別,並依照這裡的步驟授與正確的權限。
    • 如果您的伺服器已設定 [客戶自控金鑰],您可以在自動移轉精靈的 [資料加密] 區段下提供輸入:
      • 移轉客戶自控金鑰加密需要將 [身分識別] 新增至適用於 MySQL 的 Azure 資料庫 – 彈性伺服器。 請選取適當的使用者指派的受控識別。 列出的金鑰識別元/金鑰會從來源移轉至目標伺服器,且應被授與下列權限 – 取得、包裝金鑰、將金鑰解除包裝,才能存取金鑰保存庫。
    • 如果您的單一伺服器具有私人端點,請在檢閱移轉排程時,至少在排程移轉前 2 天內執行下列必要步驟:
      • 檢閱要移轉的私人端點。 確保這些私人端點標示為 [準備好移轉]。 如果標示為不符合資格,請選取適當的訂用帳戶和私人 DNS 區域。
        • 自動移轉不支援自訂私人 DNS 區域。 私人 DNS 區域必須是 privatelink.mysql.database.azure.com
        • 私人端點連線核准方法應設定為自動核准,而不是手動核准。 自動移轉不支援手動核准私人端點。
      • 請確定您具有訂用帳戶層級或資源群組層級參與者角色存取權,以避免驗證時發生任何權限問題。
      • 執行移轉私人端點的所列必要條件檢查之後,請選取 [確認核取方塊]

    注意

    如果在排程的移轉之前至少 2 天未提供移轉的必要輸入,則移轉會重新排程至稍後的日期。

    注意

    針對具有私人端點的單一伺服器執行個體,請在移轉驗證后刪除單一伺服器來源執行個體。 如果未執行任何伺服器刪除作業,服務會保留來源執行個體 14 天,然後將其刪除。

就地自動移轉的必要條件檢查

請檢閱下列必要條件以確保成功就地自動移轉:

  • 單一伺服器執行個體應處於就緒狀態,而且不應該在計劃性維護期間處於停止狀態,以便進行自動移轉。
  • 單一伺服器執行個體的伺服器參數、設定、組態和防火牆規則在排程的自動移轉前的 2 天內不要更新。
  • 針對已啟用 SSL 的單一伺服器執行個體,請確定您在受信任的根存放區具有全部三個憑證 (BaltimoreCyberTrustRootDigiCertGlobalRootG2 Root CADigiCertGlobalRootCA Root CA)。 此外,如果您已將憑證釘選到連接字串,請在排程的自動移轉之前,使用全部三個憑證建立合併的 CA 憑證,以確保移轉後的商務持續性。
  • 如果查詢中沒有 'SORT' 子句,MySQL 不保證任何排序順序。 就地自動移轉後,您可能會在排序順序中觀察到變更。 如果保留排序順序很重要,請確定您的查詢會更新為在排程就地自動移轉之前包含 'SORT' 子句。
  • 如果適用於 MySQL 的 Azure 資料庫來源單一伺服器的引擎版本為 v8.x,請務必將來源伺服器的 .NET 用戶端驅動程式版本升級至 8.0.32,以避免移轉至彈性伺服器之後發生任何編碼不相容的問題。
  • 如果您的來源適用於 MySQL 的 Azure 資料庫引擎版本為 v8.x,由於彈性伺服器已淘汰舊版 TLS,因此請確保先將您的來源伺服器 TLS 版本從 v1.0 或 v1.1 升級至 TLS v1.2,然後再進行移轉。
  • 如果您的來源適用於 MySQL 的 Azure 資料庫引擎防火牆規則名稱超過 80 個字元,則請重新命名以確保名稱長度少於 80 個字元。 (彈性伺服器支援的防火牆規則名稱長度為 80 個字元,而單一伺服器允許的名稱長度為 128 個字元。)
  • 如果您的來源適用於 MySQL 的 Azure 資料庫單一伺服器使用非預設的連接埠 (例如 3308、3309 和 3310),請將連接埠變更為 3306,因為彈性伺服器上不支援上述非預設連接埠。

如何自動佈建目標 MySQL 彈性伺服器?

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

單一伺服器定價層 單一伺服器虛擬核心 彈性伺服器層 彈性伺服器 SKU 名稱
基本 1 可高載 Standard_B1s
基本 2 可高載 Standard_B2s
一般用途 2 GeneralPurpose Standard_D2ds_v4
一般用途 4 GeneralPurpose 標準 D4ds_v4
一般用途 8 GeneralPurpose 標準 D8ds_v4
一般用途 16 GeneralPurpose Standard_D16ds_v4
一般用途 32 GeneralPurpose Standard_D32ds_v4
一般用途 64 GeneralPurpose Standard_D64ds_v4
記憶體最佳化 4 MemoryOptimized Standard_E4ds_v4
記憶體最佳化 8 MemoryOptimized Standard_E8ds_v4
記憶體最佳化 16 MemoryOptimized Standard_E16ds_v4
記憶體最佳化 32 MemoryOptimized Standard_E32ds_v4
  • 目標彈性伺服器的 MySQL 版本、區域、*儲存體大小、訂用帳戶和資源群組與來源單一伺服器相同。
  • 針對小於 20-GiB 儲存體的單一伺服器,儲存體大小會設定為 20 GiB,因為這是適用於 MySQL 的 Azure 資料庫 - 彈性伺服器的最小儲存體限制。
  • 移轉的彈性伺服器上同時支援兩種使用者格式:username@server_name (單一伺服器) 和使用者名稱 (彈性伺服器)。
  • 移轉的彈性伺服器也同時支援兩種連接字串格式:單一伺服器和彈性伺服器格式。
  • 針對已啟用查詢存放區的單一伺服器執行個體,目標執行個體上的伺服器參數「slow_query_log」會設定為 ON,確保在移轉至彈性伺服器時的功能同位。 針對特定工作負載,這可能會影響效能,而且如果您觀察到任何效能降低,請在彈性伺服器執行個體上將此伺服器參數設定為「OFF」。

移轉後步驟

以下是就地移轉後須知的訊息:

注意

移轉後不會重新啟動已停止的單一伺服器執行個體,因為其可能會妨礙您的用戶端和應用程式連線。

  • 成功完成就地移轉作業之後,請將下列屬性從來源單一伺服器複製到目標彈性伺服器:
    • 監視頁面設定 (警示、計量和診斷設定) 和鎖定設定
    • 您裝載以管理單一伺服器執行個體的任何 Terraform/CLI 指令碼,都應該使用彈性伺服器參考進行更新。
  • 針對已啟用查詢存放區的單一伺服器執行個體,目標執行個體上的伺服器參數「slow_query_log」會設定為 ON,確保在移轉至彈性伺服器時的功能同位。 請注意,針對特定工作負載,這可能會影響效能,而且如果您觀察到任何效能降低,請在彈性伺服器執行個體上將此伺服器參數設定為「OFF」。
  • 針對具有私人端點的單一伺服器執行個體,請在移轉驗證后刪除單一伺服器來源執行個體。 如果未執行任何伺服器刪除作業,服務會保留來源執行個體 14 天,然後將其刪除。
  • 針對已啟用適用於雲端的 Microsoft Defender 的單一伺服器執行個體,啟用狀態為已移轉。 若要針對您在單一伺服器中設定的屬性,在自動移轉後於彈性伺服器達成同位,請考量下表中的詳細資料:
屬性 Configuration
抑制特定警示類型 使用適用於雲端的 Microsoft Defender 平台來停用特定警示類型。 如需詳細資訊,請瀏覽抑制適用於雲端的 Microsoft Defender 警示指南

單一伺服器使用者可以使用 API 屬性:
properties.disabledAlerts
電子郵件通知 針對訂用帳戶中的所有資源,定義適用於雲端的 Microsoft Defender 警示的電子郵件通知。 如需詳細資訊,請瀏覽設定安全性警示的電子郵件通知

單一伺服器使用者可以使用 API 屬性:
properties.emailAccountAdmins,
properties.emailAddresses
匯出警示以進一步處理和/或封存 警示會儲存在適用於雲端的 Microsoft Defender 平台,並透過 Azure Resource Graph 公開。
您可以將警示匯出至不同的存放區,並個別管理保留。 如需詳細資訊,請瀏覽在 Azure 入口網站中設定連續匯出 - 適用於雲端的 Microsoft Defender

單一伺服器使用者可以使用 API 屬性:
properties.retentionDays,
properties.storageAccountAccessKey,
properties.storageEndpoint

常見問題集 (FAQ)

問: 為什麼我要被自動移轉?

A. 您適用於 MySQL 的 Azure 資料庫 - 單一伺服器執行個體有資格就地移轉至我們適用於 MySQL 的 Azure 資料庫 - 彈性伺服器的旗艦供應項目。 這項就地移轉會移除手動移轉伺服器的額外負荷,並確保您可以利用彈性伺服器的優點,包括更好的價格 & 效能、細微控制資料庫組態,以及自訂維護時段。

問: 自動移轉如何進行? 其移轉的所有功能為何?

A. 彈性伺服器已佈建符合與單一伺服器相同的 VCore 和儲存體。 接下來,來源單一伺服器會進入停止狀態,拍攝資料檔案快照集並複製到目標彈性伺服器。 DNS 交換器會執行以將所有現有的連線路由傳送至目標,並將目標彈性伺服器上線。 除了伺服器參數 (來源上所有修改的伺服器參數都會複製到目標,未修改的伺服器參數會佔用彈性伺服器所定義的預設值) 和防火牆規則外,自動移轉會移轉整個伺服器的資料檔案 (包括結構描述、資料、登入)。 這是離線移轉,您會看到最多 5 分鐘的停機時間。

問: 如何設定或檢視就地移轉警示?

A. 以下是您可以設定警示的方式:

  • 依照這裡的步驟,設定服務健康情況警示以透過電子郵件/簡訊接收就地移轉排程和進度通知。
  • 依照這裡的步驟,檢查 Azure 入口網站上的就地移轉通知。

問: 如何延遲排程的移轉?

A. 您可以瀏覽至單一伺服器執行個體的 [移轉] 刀鋒視窗,以檢閱移轉排程。 如果您想要延遲移轉,您可以瀏覽至 Azure 入口網站上單一伺服器執行個體的 [移轉] 刀鋒視窗,並在一個月內選取另一個移轉視窗來重新排程移轉,以延遲最多一個月。 移轉詳細資料會在排程的移轉視窗前七天鎖定,在此之後您就無法重新排程。 此就地移轉可以每月延遲到 2024 年 9 月 16 日。

問: 移轉的彈性伺服器支援哪些使用者名稱和連接字串? ​​

A. 使用者名稱格式 - username@server_name (單一伺服器格式) 和使用者名稱 (彈性伺服器格式) 將受到移轉彈性伺服器的支援,因此您不需要更新它們,才能在移轉後維持應用程式持續性。 此外,移轉的彈性伺服器也支援連接字串格式 (單一和彈性伺服器格式)。

問: 如何為自動移轉的伺服器啟用 HA (高可用性)?

A. 根據預設,自動移轉會設定移轉至非 HA 執行個體。 由於 HA 只能在伺服器建立時啟用,因此您應該在入口網站上使用自動移轉排程編輯選項,在排程自動移轉之前啟用 HA。 HA 只能針對目標彈性伺服器上的一般用途\記憶體優化 SKU 啟用,因為基本到高載 SKU 移轉不支援 HA 設定。

問: 我看到可能從 MySQL 基本單一伺服器移至 MySQL 彈性伺服器的定價差異?

A. 在移轉之後,少數伺服器可能會看到少量價格增加 (估計成本可透過選取入口網站上的自動移轉排程編輯選項來查看),因為這兩個供應項目的最小儲存體限制不同 (單一伺服器為 5 GiB; 彈性伺服器為 20 GiB),且彈性伺服器的儲存體成本比單一伺服器高一點 (單一伺服器為 0.1$; 彈性伺服器為 0.115$)。 對於受影響的伺服器,相較於單一伺服器,彈性伺服器的這個價格增加可提供更佳的輸送量和效能。