在 Azure 中選擇正確的 MySQL 伺服器選項
適用於:適用於 MySQL 的 Azure 資料庫 - 單一伺服器適用於 MySQL 的 Azure 資料庫 - 彈性伺服器
重要
適用於 MySQL 的 Azure 資料庫單一伺服器位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫單一伺服器會發生什麼事?
在 Azure 中,MySQL 伺服器工作負載可以在裝載的虛擬機器基礎結構即服務 (IaaS) 中執行,或當成裝載的平台即服務 (PaaS) 執行。 PaaS 有兩個部署選項,每個部署選項內都有服務層級。 選擇使用 IaaS 或 PaaS 時,您必須決定要管理資料庫、套用修補檔、備份、安全性、監視和縮放,還是要將這些作業委派給 Azure。
做決定時,請考慮下列兩個選項:
適用於 MySQL 的 Azure 資料庫。 此選項屬於 PaaS 的產業類別,並代表以穩定版本的 MySQL 社群版本為基礎的完全受控 MySQL 資料庫引擎。 這個裝載於 Azure 雲端平台的關聯式資料庫即服務 (DBaaS) 屬於 PaaS 產業類別。 透過 MySQL on Azure 的受控執行個體,您可以使用內建功能,即自動修補、高可用性、自動備份、彈性調整、企業級安全性、合規性和治理、監視和警示,當 MySQL 伺服器位於內部或 Azure VM 中時,這些功能需要進行大量設定。 將 MySQL 當成服務時,您隨用隨付,還可選擇擴大或擴增以加強控制,而不會中斷。 由 MySQL 社群版本提供的「適用於 MySQL 的 Azure 資料庫」有二種部署模式:
「彈性伺服器」為完全受控、可供實際執行使用的資料庫服務,專門為資料庫管理功能和組態設定提供更精細的控制項與彈性。 彈性伺服器架構可讓使用者選擇在單一可用性區域和跨多個可用性區域中實現高可用性。 彈性伺服器提供更完善的成本最佳化控制項,可停止/啟動伺服器和高載計算層,非常適合無須持續使用完整計算容量的工作負載。 「彈性伺服器」也支援保留執行個體,讓您能最多節省 63% 的成本,這適用於可預測計算容量需求的生產工作負載。 該服務支援 MySQL 5.7 和 8.0 的社群版本。 這項服務目前已於各個 Azure 區域正式推出。 彈性伺服器最適用於全新開發,還有將生產工作負載移轉至適用於 MySQL 的 Azure 資料庫服務。
單一伺服器為完全受控資料庫服務,旨在儘可能不必自訂。 單一伺服器平台旨在以最少的使用者設定和控制來處理大多數資料庫管理功能,例如修補、備份、高可用性和安全性。 此架構針對內建高可用性進行了最佳化,在單一可用性區域中實現了 99.99% 的可用性。 支援 MySQL 5.6 (已淘汰)、5.7 和 8.0 的社群版本。 這項服務目前已於各個 Azure 區域正式推出。 單一伺服器最適合已使用單一伺服器的現有應用程式。 建議為所有新的開發或移轉選擇彈性伺服器。
MySQL on Azure VM。 此選項屬於 IaaS 產業類別。 此服務可讓您在 Azure 雲端平台的受控虛擬機器內執行 MySQL 伺服器。 您可以在虛擬機器上安裝所有最新版本和版次的 MySQL。
比較 Azure 中的 MySQL 部署選項
下表列出這些選項之間的主要差異:
屬性 | 適用於 MySQL 的 Azure 資料庫 單一伺服器 |
適用於 MySQL 的 Azure 資料庫 彈性伺服器 |
Azure VM 上的 MySQL |
---|---|---|---|
一般 | |||
正式發行 | 正式推出 | 正式推出 | 正式推出 |
服務等級協定 (SLA) | 99.99% 可用性 SLA | 99.99% 使用可用性區域 | 99.99% 使用可用性區域 |
基礎 O/S | Windows | Linux | 由使用者管理 |
MySQL 版本 | 社群版 | 社群版 | Community 或 Enterprise Edition |
MySQL 版本支援 | 5.6 (已淘汰)、5.7 和 8.0 | 5.7 和 8.0 | 任何版本 |
選取應用程式共置的可用性區域 | No | .是 | Yes |
連接字串中的使用者名稱 | <user_name>@server_name . 例如,mysqlusr@mypgServer |
只有使用者名稱。 例如,mysqlusr |
只有使用者名稱。 例如,mysqlusr |
計算與儲存體縮放 | |||
計算層 | 基本、一般用途、記憶體最佳化 | 可高載、一般用途、記憶體最佳化 | 可高載、一般用途、記憶體最佳化 |
計算調整 | 支援 (不支援從基本層來回縮放) | 支援 | 支援 |
儲存體大小 | 5 GiB 至 16 TiB | 20 GiB 至 16 TiB | 32 GiB 至 32,767 GiB |
線上縮放儲存體 | 支援 | 已支援 | 不支援 |
自動儲存體縮放 | 支援 | 已支援 | 不支援 |
IOP 擴充 | 不支援 | 支援 | 不支援 |
成本最佳化 | |||
保留執行個體定價 | 支援 | 支援 | 支援 |
開發時停止/啟動伺服器 | 伺服器最長可以停止七天 | 伺服器最長可以停止 30 天 | 支援 |
低成本可高載 SKU | 不支援 | 支援 | 支援 |
網路/安全性 | |||
網路連線 | - 公用端點搭配伺服器防火牆。 - 透過 Private Link 支援的私人存取。 |
- 公用端點搭配伺服器防火牆。 - 透過 Private Link 支援的私人存取。 - 透過虛擬網路整合的私人存取。 |
- 公用端點搭配伺服器防火牆。 - 透過 Private Link 支援的私人存取。 |
SSL/TLS | 預設為啟用,支援 TLS v1.2、1.1 和 1.0 | 默認會啟用 TLS v1.3、1.2 的支援 | 支援 TLS v1.2、1.1 和 1.0 |
待用資料加密 | 支援客戶自控金鑰 (BYOK) | 支援服務受控金鑰 | 不支援 |
Microsoft Entra 驗證 | 支援 | 已支援 | 不支援 |
適用於雲端的 Microsoft Defender 支援 | Yes | 是 | No |
伺服器稽核 | 支援 | 支援 | 由使用者管理 |
修補與維護 | |||
作業系統修補 | 自動 | 自動 | 由使用者管理 |
MySQL 次要版本升級 | 自動 | 自動 | 由使用者管理 |
MySQL 主要版本就地升級 | 支援從 5.6 到 5.7 | 支援從 5.7 到 8.0 | 由使用者管理 |
維修控制 | 由系統管理 | 客戶管理的 | 由使用者管理 |
維護時間範圍 | 在 15 小時內的任何時間 | 1 小時時間範圍 | 由使用者管理 |
計劃性維護通知 | 三天 | 五天 | 由使用者管理 |
高可用性 | |||
高可用性 | 內建 HA (無熱待命) | 內建 HA (無熱待命)、有熱待命的相同區域和區域備援 HA | 由使用者管理 |
區域備援 | 不支援 | 支援 | 支援 |
待命區域放置 | 不支援 | 支援 | 支援 |
Automatic failover | 是 (啟動另一個伺服器) | Yes | 由使用者管理 |
使用者起始的強制容錯移轉 | No | Yes | 由使用者管理 |
透明應用程式容錯移轉 | Yes | Yes | 由使用者管理 |
複寫 | |||
支援讀取複本 | Yes | Yes | 由使用者管理 |
支援的讀取複本數目 | 5 | 10 | 由使用者管理 |
複寫模式 | 非同步 | 非同步 | 由使用者管理 |
讀取複本的 Gtid 支援 | 支援 | 支援 | 由使用者管理 |
跨區域支援 (異地複寫) | Yes | Yes | 由使用者管理 |
混合式案例 | 支援資料輸入複寫 | 支援資料輸入複寫 | 由使用者管理 |
資料輸入複寫的 Gtid 支援 | 支援 | 支援 | 由使用者管理 |
資料輸出複寫 | 不支援 | 支援 | 支援 |
備份和復原 | |||
自動備份 | Yes | 是 | No |
備份保留 | 7 到 35 天 | 1 到 35 天 | 由使用者管理 |
長期保留備份 | 由使用者管理 | 由使用者管理 | 由使用者管理 |
匯出備份 | 支援使用邏輯備份 | 支援使用邏輯備份 | 支援 |
在保留期間內還原至任何時間的時間點還原功能 | Yes | Yes | 由使用者管理 |
快速還原點 | No | .是 | No |
能夠在不同區域上還原 | 不支援 | Yes | Yes |
能夠還原至不同的 VNet | No | .是 | Yes |
能夠還原至不同的區域 | 是 (異地備援) | 是 (異地備援) | 由使用者管理 |
能夠還原已刪除的伺服器 | Yes | 是 | No |
災害復原 | |||
跨 Azure 區域的災害復原 | 使用跨區域讀取複本、異地備援備份 | 使用異地備援備份 | 由使用者管理 |
Automatic failover | 否 | 無 | No |
可以使用相同的 r/w 端點 | No | 不支援 | No |
監視 | |||
Azure 監視器整合和警示 | 支援 | 支援 | 由使用者管理 |
監視資料庫作業 | 支援 | 支援 | 由使用者管理 |
查詢效能深入解析 | 支援 | 支援 (使用 Workbooks) | 由使用者管理 |
伺服器記錄 | 支援 | 支援 (使用診斷記錄) | 由使用者管理 |
稽核記錄 | 支援 | 支援 | 支援 |
錯誤記錄 | 不支援 | 支援 | 支援 |
Azure Advisor 支援 | 支援 | 已支援 | 不支援 |
外掛程式 | |||
validate_password | 不支援 | 在預覽階段 | 支援 |
caching_sha2_password | 不支援 | 在預覽階段 | 支援 |
開發人員生產力 | |||
車隊管理 | 支援 Azure CLI、PowerShell、REST 和 Azure Resource Manager | 支援 Azure CLI、PowerShell、REST 和 Azure Resource Manager | 支援 VM 使用 Azure CLI、PowerShell、REST 和 Azure Resource Manager |
Terraform 支援 | 支援 | 支援 | 支援 |
GitHub 動作 | 支援 | 支援 | 由使用者管理 |
選擇 PaaS 或 IaaS 的商業動機
有幾個因素會影響您選擇 PaaS 還是 IaaS 來裝載 MySQL 資料庫。
成本
在確定裝載資料庫的最佳解決方案時,降低成本通常是首要考量因素。 無論是只有極少現金的新創公司,或是在有規模公司中受到嚴格的預算限制下運作的小組,都會以 TCO 作為主要考量。 本節說明 Azure 中的計費和授權基本概念,適用於「適用於 MySQL 的 Azure 資料庫」和 MySQL on Azure VM。
計費
「適用於 MySQL 的 Azure 資料庫」目前可作為數個層級的服務提供,資源價格也不同。 所有資源均會以固定費率按小時計費。 如需有關目前支援的服務層級、計算大小和儲存體數量的最新資訊,請參閱定價頁面。 您可以動態調整服務層級和計算大小,以滿足應用程式的不同輸送量需求。 傳出的網際網路流量也會以一般資料傳輸費率計費。
對於適用於 MySQL 的 Azure 資料庫,Microsoft 會自動設定、修補和升級資料庫軟體。 這些自動化動作會降低您的管理成本。 適用於 MySQL 的 Azure 資料庫也具有自動備份功能。 這些功能可協助您達到大幅節省成本,尤其是當您擁有許多資料庫時。 相反地,在 MySQL on Azure VM 中,您可以選擇和執行任何 MySQL 版本。 無論使用哪個 MySQL 版本,您都需要支付已佈建的 VM、與資料、備份、監視資料和記錄儲存體相關聯的儲存體成本,以及已使用的特定 MySQL 授權類型的成本 (如果有)。
「適用於 MySQL 的 Azure 資料庫」為節點層級中斷提供內建高可用性,同時維持服務的 99.99% SLA 保證。 不過,對於 VM 內的資料庫高可用性,請使用 MySQL 資料庫上可用的高可用性選項,例如 MySQL 複寫。 使用支援的高可用性選項並不提供額外的 SLA, 但它可以讓您以額外的成本和系統管理額外負荷達到超過 99.99% 的資料庫可用性。
如需定價的詳細資訊,請參閱下列文章:
系統管理
對許多企業而言,決定轉換至雲端服務,卸載複雜的系統管理和降低成本一樣重要。
Microsoft 可以透過 IaaS:
- 管理基礎結構。
- 自動修補基礎硬體和作業系統。
透過 PaaS,Microsoft 可以:
- 管理基礎結構。
- 自動修補基礎硬體、作業系統和資料庫引擎。
- 管理資料庫高可用性。
- 自動執行備份及複寫所有資料以提供災害復原。
- 預設加密待用資料和移動中的資料。
- 監視伺服器,還有功能提供查詢效能深入解析和效能建議
下列清單說明每個選項的管理考量:
透過「適用於 MySQL 的 Azure 資料庫」,您可以繼續管理您的資料庫。 但不再需要管理資料庫引擎、作業系統或硬體。 您可以繼續管理的項目範例如下:
- 資料庫
- 登入
- 索引微調
- 查詢微調
- 稽核
- 安全性
此外,設定其他資料中心的高可用性時,至少需要進行的最小設定或系統管理。
透過 MySQL on Azure VM,您可以控制作業系統和 MySQL 伺服器執行個體設定。 您可以決定何時更新或升級 VM 的作業系統和資料庫軟體以及套用哪些修補檔。 您也可以選擇何時安裝任何其他軟體,例如防毒應用程式。 提供某些自動化功能以大幅簡化修補、備份及高可用性。 您還可以控制 VM 的大小、磁碟數目及其儲存體設定。 如需詳細資訊,請參閱Azure 的虛擬機器和雲端服務大小。
移至 Azure 的時間
如果開發人員生產力和新解決方案的快速上市時間很重要,適用於 MySQL 的 Azure 資料庫是雲端式設計應用程式的理想解決方案。 透過 DBA 之類的程式設計功能,該服務適合雲端架構設計人員和開發人員,因為它降低了管理基礎作業系統和資料庫的需求。
如果應用程式需要精細控制和自訂服務所不支援的 MySQL 引擎,或需要存取基礎 OS,為了不要花太多時間和費用來取得新的內部部署硬體,MySQL on Azure VM 是正確的解決方案。 此解決方案也適合將現有的內部部署應用程式和資料庫移轉至 Azure,以應對「適用於 MySQL 的 Azure 資料庫」較不適合的情況。
因為不需要變更展示層、應用程式層和資料層,可節省重新建構現有解決方案所花的時間和預算。 相反地,您可以專注於將所有解決方案遷移至 Azure,並進行 Azure 平台可能需要的某些效能最佳化。
下一步
- 請參閱適用於 MySQL 的 Azure 資料庫定價。
- 從建立您的第一部伺服器開始。