適用於 MySQL 的 Azure 資料庫運作方式
在本單元中,您會探索「適用於 MySQL 的 Azure 資料庫」運作方式,從其架構開始。 您也會了解該服務如何提供高可用性、備份功能和調整,以符合工作負載的需求。
適用於 MySQL 的 Azure 資料庫結構
下圖說明「適用於 MySQL 的 Azure 資料庫 - 彈性伺服器」執行個體的架構。
- MySQL 執行個體會在 Azure VM 上執行。
- 資料和記錄會儲存於 Azure 進階儲存體中。
- 資料會在本地備援儲存體之間複寫三次,以進行備份和復原。 這項服務也提供設定區域備援或異地備援儲存體備份的選項。
- 此外,您也可以選擇將連線到 MySQL 彈性伺服器的各種用戶端應用程式,放置在同一個可用性區域內。
您可以進一步選擇加入相同區域或區域備援高可用性,以自動佈建和維護待命複本。
高可用性的運作方式
就「適用於 MySQL 的 Azure 資料庫 - 彈性伺服器」而言,在單一可用性區域內,裝載伺服器失敗之後會執行下列程序:
- Azure 會佈建新的虛擬機 (VM)。
- Azure 將儲存體和資料檔案對應至新佈建的 VM。
- MySQL 資料庫引擎已上線。
- 用戶端應用程式重新連接到新的 MySQL 執行個體。
注意
如果您已佈建跨區域的高可用性,則熱待命伺服器會放在相同 Azure 區域的另一個可用性區域中。 此伺服器是主要伺服器的完全同步複本。 當主要伺服器失敗時,熱待命伺服器可以快速接管,並盡可能減少中斷,進而維護服務可用性。
備份的運作方式
您可以使用備份,在保留期間內將伺服器還原到任何時間點 (預覽版為 35 天,或最多 10 年並具有長期保留期)。
縮放的運作方式
在「適用於 MySQL 的 Azure 資料庫」中調整牽涉到根據應用程式需求調整計算資源,這可能會根據使用者需求、處理作業的複雜性,或商務成長等其他因素而變動。 這種彈性對於維護最佳效能和成本效益至關重要。
調整類型
- 垂直縮放 (相應增加/相應減少)
- 計算縮放:這是指變更 MySQL 彈性伺服器的計算層。 Azure 提供數個計算層,每個計算層都設計為可迎合不同類型的工作負載:
- 可高載:適用於間歇性高載 CPU 使用量的環境,不需要持續的完整 CPU 效能。
- 一般用途:專為各種應用程式所設計,可提供計算、記憶體和 I/O 資源的平衡。
- 商務關鍵性:為資料庫提供最高效能,具有更強大的 CPU 和更快速的 I/O,適用於高交易、低延遲的工作負載。
- 記憶體和 CPU 配置:視您選取的階層而定,您可以調整虛擬核心數目和資料庫可用的 RAM 數量,這直接影響處理較大型或較複雜的查詢的能力,並允許更多的並行連線數目。
- 計算縮放:這是指變更 MySQL 彈性伺服器的計算層。 Azure 提供數個計算層,每個計算層都設計為可迎合不同類型的工作負載:
- 平行縮放
- 適用於 MySQL 的 Azure 資料庫可以新增讀取複本,將讀取流量分散到多部伺服器,以改善讀取效能,同時讓主要伺服器可供寫入。 水平調整可讓資料庫處理更多查詢負載,並提高應用程式回應性。
- 儲存體調整
- 動態儲存裝置調整:使用適用於 MySQL 的 Azure 資料庫,您可以在不停機的情況下增加儲存體容量。 您可以從較小的配置開始,並在資料成長時相應增加。
- 自動成長功能:這項功能會在達到容量限制之前自動增加儲存大小,以避免造成與儲存體限制相關的任何中斷。
自動調整 IOPS (Autoscale IOPS)
自動調整 IOPS (每秒輸入/輸出作業) 這項功能可根據目前的工作負載動態調整 I/O 輸送量。 這特別適用於無法預測或容易發生尖峰工作的負載模式,因為其可確保資料庫可以在不需手動介入的情況下處理負載突然增加。
- 根據負載調整 IOPS:當工作負載增加且需要更多 I/O 輸送量時,自動調整功能會自動將 IOPS 限制提高到所選計算層中允許的最大值。 相反地,在低活動期間會減少 IOPS,將成本降至最低。
- 成本效益:您可根據實際使用量自動調整 IOPS,只需支付您使用的 IOPS,而不必過度佈建資源來處理尖峰負載,這可能會偶爾發生。
縮放的最佳做法
若要有效調整適用於 MySQL 的 Azure 資料庫,請使用 Azure 監視器來監視效能計量、設定重大警示、檢閱使用量模式來規劃未來成長,以及測試離峰時段的延展性,以確保負載增加時的順暢效能。
您可以了解及使用這些調整機制,確保適用於 MySQL 的 Azure 資料庫彈性伺服器一律能有效率地執行,以適應貴企業目前和未來的需求。
設定及微調引擎行為
若要在適用於 MySQL 的 Azure 資料庫中輕鬆設定及自訂伺服器變數和參數,您可以使用 Azure 入口網站、Azure CLI 或 REST API 來調整查詢快取大小、連線逾時和儲存體引擎喜好設定等設定,以確保特定工作負載的最佳效能和行為。
接著,考量適用於 MySQL 的 Azure 資料庫是否符合貴組織的需求、其應用程式和資料庫工作負載。