適用於 MySQL 的 Azure 資料庫簡介

已完成

適用於 MySQL 的 Azure 資料庫可部署為彈性伺服器 (預覽版),以在 Azure 中裝載您的組織 MySQL 資料庫。 同時也是完全受控資料庫即服務項目,能以可預測的效能及動態可擴縮性,處理任務關鍵性工作負載。

身為一位擁有多年執行和管理內部部署 MySQL 安裝的資料庫開發人員,您會想要探索適用於 MySQL 的 Azure 資料庫如何支援及調整其功能。

在此單元中,您將探索適用於 PostgreSQL 的 Azure 資料庫定價、版本支援、複寫和調整選項。

適用於 MySQL 的 Azure 資料庫的優點

適用於 MySQL 的 Azure 資料庫是以適用於 MySQL 的 Azure 資料庫伺服器的方式佈建。 適用於 MySQL 的 Azure 資料庫伺服器相當於內部部署 MySQL 伺服器,並提供管理多個 MySQL 資料庫的中心點。

若要建立適用於 MySQL 資料庫的 Azure 的資料庫,您必須先佈建適用於 MySQL 的 Azure 資料庫伺服器。 適用於 MySQL 的 Azure 資料庫伺服器是一或多個資料庫的父代,並提供資料庫的命名空間。 如果您刪除伺服器,將會刪除其包含的所有資料庫。

適用於 MySQL 的 Azure 資料庫伺服器提供哪些功能?

適用於 MySQL 的 Azure 資料庫服務包含不需要額外成本就能享用的高可用性與可擴縮性。 您只需依據使用量付費。 系統提供自動備份,含時間點還原。

伺服器提供連線安全性來強制執行防火牆規則,以及要求 SSL 連線 (選擇性)。 許多伺服器參數可讓您設定伺服器設定,例如鎖定模式、最大連線數目,以及逾時。 標示為動態的參數變更會立即生效。 靜態參數需要重新啟動伺服器。 您可以使用入口網站中 [概觀] 頁面上的 [重新啟動] 按鈕來重新啟動伺服器。

適用於 MySQL 的 Azure 資料庫伺服器提供監視功能來新增警示,以及檢視計量與記錄。

定價層

定價層提供各種效能和容量,從 1 到 64 虛擬核心,以及 5 GB 到 4 TB 的儲存體。 基本定價層是針對輕量計算工作負載所設計,最多支援兩個虛擬核心,每個核心 2 GB 的記憶體。 一般用途的定價層將符合大部分的商務工作負載,並支援從 2 到 64 虛擬核心,每個核心 5 GB 的記憶體。 記憶體最佳化的定價層支援 2 到 32 虛擬核心,每個虛擬核心有 10 GB 的記憶體,適用於高效能的工作負載,包括即時資料分析。 雖然您可以在一般用途和記憶體最佳化的定價層之間切換,並在數秒內變更虛擬核心或儲存體數目,但無法移至或移出基本定價層。

Image showing the pricing tiers in the Azure portal

有根據定價層和虛擬核心數目的連線限制。 如需詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫中的限制

版本設定和升級

適用於 MySQL 的 Azure 資料庫支援 5.6 (錯誤修正版本 5.6.42)、5.7 (錯誤修正版本 5.7.24),以及 8.0 (錯誤修正版本 8.0.15)。

注意

網路閘道會將連線重新導向至伺服器執行個體。 MySQL 用戶端會顯示網路閘道的版本,而不是伺服器執行個體的版本。 檢視伺服器執行個體的版本,使用 SELECT VERSION(); 命令。

錯誤修正版本會自動套用,但不支援版本升級。 若要從某個版本升級到另一個版本,您應該執行備份和還原。

延展性

如先前所述,您無法移至或移出基本定價層。 不過,您可以改變虛擬核心數目、硬體世代、儲存磁碟區大小和備份保留期限。 您也可以在一般用途和記憶體最佳化定價層之間切換。

請注意,儲存體只會增加、不會減少,而且可以設定為自動成長。 如果啟用自動成長,儲存體低於 100 GB 的伺服器且當可用儲存空間小於 1 GB 或 10% 時 (看何者較大),儲存體會成長 5 GB。 若是超過 100 GB 的伺服器,當可用儲存空間小於 5% 時,儲存體會增加 5%。

高可用性

適用於 MySQL 的 Azure 資料庫包含以財務支援的服務等級協定 (SLA),可取得 99.99% 的可用性。 如果發生硬體失敗或服務部署,則會自動建立新的節點,並將儲存體連結到此節點。 容錯移轉將在數十秒內完成。

如果適用於 MySQL 的 Azure 資料庫伺服器執行個體已擴大或縮小,就會發生類似將資料儲存體連結至新執行個體的流程。 如果發生容錯移轉,就會發生擴大或縮小,或是用戶端與 Azure 之間的網際網路流量中斷,用戶端可能會發生暫時性連線錯誤。 請務必在應用程式中使用重試邏輯。 在容錯移轉的情況下,網路閘道會將流量導向至新節點,用戶端不需要進行任何設定。

如需處理暫時性錯誤的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫的暫時性連線錯誤處理

將資料複寫至適用於 MySQL 的 Azure 資料庫

資料輸入複寫

資料輸入複寫使用 MySQL 的原生複寫功能,將外部 MySQL 伺服器的資料複寫到適用於 MySQL 的 Azure 資料庫。 如果您想要使用現有的內部部署 MySQL 執行個體和以 Azure 為基礎的複本來佈建混合式環境,這十分有用。 此案例會提供本機資料給全域分散式系統中的使用者。 您也可以從其他雲端提供者所裝載的虛擬機器或 MySQL 資料庫服務來處理資料輸入複寫。

資料輸入複寫考量

以下是資料輸入複寫應考慮的一些因素:

  • 主要伺服器和複本伺服器的版本必須相同,而且至少為 5.6 版。
  • 主要伺服器和複本伺服器應使用 InnoDB 引擎。
  • 每個資料表都應該有一個主索引鍵。
  • 適用於 MySQL 的 Azure 資料庫伺服器必須建立於一般用途記憶體最佳化定價層。
  • 您應該具有在主要伺服器上建立使用者及設定二進位記錄的權限。
  • MySQL 系統資料庫無法複寫。 帳戶和存取權限不會從主要伺服器複寫到複本,而應該以手動方式建立。

設定資料輸入複寫的步驟

有幾個步驟可設定資料輸入複寫:

  • 建立要做為複本主機使用,適用於 MySQL 伺服器的 Azure 資料庫,並建立任何必要的使用者帳戶和授權。
  • 在主要伺服器上設定複寫。
  • 傾印並還原主要伺服器。
  • 使用資料輸入複寫預存程序來設定目標伺服器。

如需詳細資訊,請參閱< 如何為適用於 MySQL 的 Azure 資料庫設定複寫中的資料>。

讀取複本

讀取複本會使用原生 MySQL 複寫技術來建立適用於 MySQL 的 Azure 資料庫伺服器的非同步複本執行個體。 複本伺服器是唯讀的,而且每個主要伺服器最多可擁有五個複本。 針對每個讀取複本,根據其使用的虛擬核心和儲存體計算每月成本。

讀取複本的使用

報告服務

藉由建立主要伺服器的唯讀複本,您會將所有的報告、BI 和分析工作負載導向至複本。 這會從主要伺服器中移除工作負載,並在主要伺服器需要執行大量寫入的工作負載時減少衝突。

讓資料接近使用者

您可以建立跨區域複本,讓資料更接近使用者,並改善其讀取速度。 跨區域複本可以存放在通用複本區域或主要伺服器的配對區域中。 當您建立複本伺服器時,會列出可用的區域。

Image showing replica regions

設定讀取複本

您可以設定 Azure 入口網站的讀取複本:

Image showing replication setting in the Azure portal

然後,您可以指定複本的名稱和存放區域:

Image showing replication in the Azure portal

注意

基本定價層無法使用讀取複本。

如需讀取複本的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫中的讀取複本

管理與監視

適用於 MySQL 的 Azure 資料庫具有各式各樣的監視工具,可協助您的伺服器最佳化、收到事件的通知,並主動回應計量。 您也可以使用熟悉的 MySQL 系統管理工具(例如最新版本的 MySQL Workbench、PHPMyAdmin 和 Navicat)來管理和監視適用於 MySQL 的 Azure 資料庫伺服器:

Image showing the MySQL Workbench tool connected to Azure Database for MySQL

用於監視適用於 MySQL 的 Azure 資料庫的 Azure 工具

Azure 入口網站中用來管理和監視適用於 MySQL 的 Azure 資料庫的工具組包括下列各項:

  • Azure 計量。 計量會提供每分鐘的數值資料,並儲存 30 天。 您可以使用各種計量陣列來監視您的伺服器,也可以設定回應計量警示。

    Image showing Azure metrics

    如需詳細資訊,請參閱< Azure 監視器資料平台>。

  • 伺服器和稽核記錄檔。 您可以啟用伺服器記錄檔來監視速度緩慢的查詢動作,並為您的伺服器提供稽核記錄。 您可以透過 Azure 診斷記錄,取得 MySQL SQL Database 以外的伺服器記錄。

    Image showing Azure server logs

    如需詳細資訊,請參閱< 適用於 MySQL 的 Azure 資料庫中緩慢的查詢記錄>。 稽核記錄是一項預覽功能,提供稽核記錄以便追蹤資料庫的活動。 若要開啟稽核記錄,請將 audit_log_enabled 參數設定為 [開啟]。 如需有關稽核記錄檔的詳細資訊,請參閱< 適用於 MySQL 的 Azure 資料庫中的稽核記錄檔>。

  • 查詢存放區。 這是用來追蹤在一段時間內您伺服器的效能,並提供疑難排解資訊。 查詢存放區會保留查詢歷程記錄和執行時間統計資料,讓您可以找出耗用大量資源或長時間執行的查詢。 若要啟用 查詢存放區,請將query_store_capture_mode伺服器參數設定為 ALLImage showing Query Store capture mode

    若要查看查詢存放區的相關查詢資料,請執行下列查詢:

    SELECT * FROM mysql.query_store;
    

    若要檢視等候統計資料的相關資料,請執行下列查詢:

    SELECT * FROM mysql.query_store_wait_stats;
    

    注意

    查詢存放區是預覽功能,無法在基本定價層中使用。

    如需查詢存放區的詳細資訊,請參閱< 使用查詢存放區監視適用於 MySQL 的 Azure 資料庫效能>。

  • 查詢效能深入解析。 查詢效能深入解析以顯示查詢存放區的資料作為視覺效果,可讓您找出影響效能的查詢。 查詢效能深入解析是在 Azure 入口網站中適用於 MySQL 的 Azure 資料庫的 「智慧型效能」 區段中。

    注意

    查詢效能深入解析是預覽功能,無法在基本定價層中使用。

    如需查詢效能深入解析的詳細資訊,請參閱< 適用於 MySQL 的 Azure 資料庫中的查詢效能深入解析>。

  • 效能建議。 效能建議會使用查詢存放區中的資料來分析工作負載,並將此與資料庫特性結合,建議新的索引以改善效能。 效能建議是在 Azure 入口網站中適用於 MySQL 的 Azure 資料庫的 [智慧型效能] 區段中。

    注意

    效能建議是預覽功能,無法在基本定價層中使用。

    如需有關效能建議的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫中的效能建議

用戶端連線

MySQL 驅動程式

適用於 MySQL 的 Azure 資料庫使用 MySQL 的社區版本,而且與各式各樣的驅動程式相容,並支援各種不同的程式設計語言。 Azure 入口網站提供連接字串:

Image showing connection strings

如需 MySQL 驅動程式的詳細資訊,請參閱< 與適用於 MySQL 的 Azure 資料庫相容的 MySQL 驅動程式和管理工具

設定防火牆

設定防火牆最簡單的方式是在 Azure 入口網站中進入您提供服務的 [連線安全性] 中設定。 請為每個用戶端 IP 位址範圍新增一項規則。 您也可以使用此頁面來強制執行服務的 SSL 連線。

Image showing the firewall configuration for Azure Database for PostgreSQL

您可以按一下工具列中的 [新增用戶端 IP],新增桌上型電腦的 IP 位址。

如果您已設定唯讀複本,則必須將防火牆規則新增至每個複本,以便用戶端能夠存取這些複本。

暫時性連線錯誤

當您透過網際網路連線到資料庫時,暫時性的連線錯誤是無法避免的,且應該由用戶端應用程式處理連線錯誤。

如需處理暫時性錯誤的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫的暫時性連線錯誤處理

不支援適用於 MySQL 的 Azure 資料庫中的 MySQL 功能

雖然 MySQL 中的多數功能都可以在適用於 MySQL 的 Azure 資料庫中使用,但不支援某些功能。 您應該檢閱這些功能,以確保在轉移時減少任何可能的問題。

儲存引擎

適用於 MySQL 的 Azure 資料庫支援 InnoDB 和記憶體儲存引擎。 InnoDB 是適用於 MySQL 的預設儲存引擎,兼具高效能和高可靠性。 除非特別指定,否則 MySQL 中的所有新資料表都會使用 InnoDB 儲存引擎。

如需有關 InnoDB 儲存引擎的詳細資訊,請參閱 InnoDB 簡介

若要將資料儲存在記憶體中,可以使用記憶體儲存引擎。 這種方式有可能將資料曝露在各種形式的毀損或中斷的風險,因此記憶體儲存引擎應只做為高效能的暫存存放區。

如需記憶體儲存引擎的詳細資訊,請參閱記憶體儲存引擎

適用於 MySQL 的 Azure 資料庫不支援 MyISAM、BLACKHOLE、ARCHIVE 和同盟儲存引擎。 MyISAM 資料應轉換成 InnoDB 儲存引擎。 BLACKHOLE、ARCHIVE 和同盟儲存引擎都有其專門角色,不能作為一般的資料存放區。

權限和角色

由於許多伺服器設定和參數可以中斷交易規則並降低效能,因此不會公開 DBA 的角色。 基於類似的原因,會限制SUPER權限,就像使用SUPER權限的DEFINER子句一樣。

還原

在適用於 MySQL 的 Azure 資料庫中,兩種還原功能的運作方式不同:

  • 時間點還原會建立新的伺服器,採用與其所依據的伺服器相同的組態。
  • 您無法還原已刪除的伺服器。