Azure 中的 MySQL 和 PostgreSQL 資料庫服務

已完成

如果您有功能的內部部署資料庫,為什麼要考慮將其移至雲端服務,例如 Azure? 同樣地,為什麼要考慮在 Azure 中實作新的資料庫系統? 許多組織都會執行此移轉,因為相較於使用內部部署數據中心,在雲端中建立高可用性且可調整的服務相當簡單且相對便宜。

針對您的初創公司,目前在 MySQL 和 PostgreSQL 內部部署上執行的資料庫是任務關鍵性,但受限於數據中心的大小和系統管理小組的大小。 您想要調查您是否可以使用 Azure 服務來解決這些限制,如果是的話,哪些服務最適合您的需求。

在這裡,您將了解適用於 MySQL 的 Azure 資料庫、適用於 MariaDB 的 Azure 資料庫和適用於 PostgreSQL 的 Azure 資料庫,以及您可以搭配它們使用的部署選項。 您也將瞭解在 Azure 中的虛擬機或容器上執行開放原始碼資料庫的優點,以及基礎結構即服務 (IaaS) 方法。

可用性

Azure 服務等級協定 (SLA) 所確保的可用性取決於您實作的具體細節,但它們一律很高。 例如,針對適用於 PostgreSQL 的 Azure 資料庫,Microsoft保證 99.99% 可用性,而不需要額外費用。 為了獲得更高的可用性,您可以使用彈性伺服器。

如果您想要在內部部署網路中達到此可用性,您必須建構可復原硬體失敗的系統。 您需要:

  • 多部實體伺服器。
  • 如果伺服器發生故障,負載平衡器可以重新路由查詢。
  • 在伺服器之間共用數據的儲存局域網路,或用來在伺服器之間復寫數據的方式。
  • 復原網路硬體。
  • 環境控制的數據中心。
  • 不間斷的電源供應器和備份產生器。

所有這些元件都是昂貴的,需要技能才能實作和執行。 它們也會耗用大量的系統管理資源。 透過 Azure,這些需求已解決;您只要建立資料庫,就會內建高可用性。

延展性

如果您的使用者群成長,系統需求就會隨其成長。 每個內部部署系統都有最大容量—如果您接近該限制,則必須藉由新增更多硬體來增加它。 您無法立即新增容量。 相反地,您必須購買硬體、安裝必要的作系統和軟體、套用更新,然後將數據新增至新的資料庫實例。 所有這些事情需要時間。

也請記住,高需求通常是暫時的。 例如,如果您成功地執行了一個營銷活動,您可能會看到網站流量的高峰,然後需求回到較低的水平。 在內部部署設定中,您必須依據這些尖峰來設計系統。 這表示系統大部分時間的使用量過低,但仍會產生費用,並需要維護。

在雲端中,這些挑戰更容易克服。 如果您的系統達到其容量,您可以非常快速地回應,例如,移至較大的層或新增虛擬機。 如果需求下降,您可以藉由移除容量來快速節省成本。 在 Azure 中,您只需支付您使用的容量。

IaaS 和 PaaS

當您在 Azure 上實作資料庫時,可以選擇至少兩種方法,視您需要的控制層級而定:

  • 基礎結構即服務(IaaS)。 如果您選擇 IaaS 方法,Azure 會為您執行實體基礎結構。 您可以建立虛擬機和虛擬網路來連線它們,然後安裝必要的軟體和數據。 執行虛擬機就像執行實體伺服器一樣。 您維護作系統和軟體,但不必擔心數據中心、環境控制或因特網連線。
  • 平臺即服務(PaaS)。 如果您選擇 PaaS 方法,Azure 會執行實體基礎結構、必要的虛擬伺服器和資料庫軟體。 您不需要在這些元件上執行設定或維護工作。 例如,Azure 會自動套用服務套件。 您可以專注於資料庫管理。 在 Azure 上執行開放原始碼資料庫的 PaaS 供應專案包括 適用於 MySQL 的 Azure 資料庫適用於 MariaDB 的 Azure 資料庫,以及 適用於 PostgreSQL 的 Azure 資料庫

什麼是適用於 MySQL、MariaDB 和 PostgreSQL 的 Azure 資料庫服務?

如果您有以 MySQL、MariaDB 或 PostgreSQL 為基礎的內部部署資料庫系統,而且您想要將資料庫移至雲端,請考慮使用 適用於 MySQL 的 Azure 資料庫適用於 MariaDB 的 Azure 資料庫適用於 PostgreSQL 的 Azure 資料庫。 您可能也想要使用這些服務來實作新的資料庫。 例如,如果您的開發人員和資料庫管理員有這些資料庫伺服器的經驗,而且您不希望他們花時間學習新的系統,則使用 適用於 MySQL 的 Azure 資料庫適用於 MariaDB 的 Azure 資料庫適用於 PostgreSQL 的 Azure 資料庫 可讓員工使用其現有的知識。 適用於 MySQL 的 Azure 資料庫適用於 MariaDB 的 Azure 資料庫適用於 PostgreSQL 的 Azure 資料庫 都是 PaaS 系統,因此您不需要自行規劃或實作虛擬伺服器或網路。

什麼是 Azure Database for MySQL?

適用於 MySQL 的 Azure 資料庫是 Azure 雲端中 MySQL 的 PaaS 實作,其以 MySQL 社群版為基礎。 您目前可以根據需求從 MySQL 5.6、5.7 和 8.0 版的支援中選取。 隨著 MySQL 的發展,將提供其他版本的支援。

使用適用於 MySQL 的 Azure 資料庫時,您可以獲得下列功能:

  • 內建的高可用性功能。
  • 可預測的效能。
  • 容易擴縮且可快速回應要求。
  • 保護待用與移動中的資料。
  • 自動備份與過去 35 天的時間點還原。
  • 企業級安全性與法規合規性。

系統使用隨用隨付定價,因此您只需為使用的部分付費。

您可以從兩個部署選項中選擇:

適用於 MySQL 的 Azure 資料庫 - 彈性伺服器

適用於 MySQL 的 Azure 資料庫 - 彈性伺服器藉由將資料庫複寫至多個可用性區域,以提供更高的可用性。 它也可讓您快速啟動和停止資料庫服務,以將成本優化。

適用於 MySQL 的 Azure 資料庫提供全域資料庫系統,可擴大至大型資料庫,而不需要管理硬體、網路元件、虛擬伺服器、軟體修補程式與其他底層元件。

什麼是適用於 MariaDB 的 Azure 資料庫?

MariaDB 是 MySQL 的分支,由社群建立,以回應 Oracle 取得 MySQL。 適用於 MariaDB 的 Azure 資料庫是 Azure 雲端中 MariaDB 的 PaaS 實作。

MariaDB 的設計目的是要取代 MySQL,因此您可以將 MySQL 資料庫取代為 MariaDB 資料庫,而不需要大量重新編碼用戶端應用程式或資料庫架構中的變更。 MariaDB 的許多功能與 MySQL 相同,例如:

  • 資料庫結構和索引
  • 數據定義命令
  • 用戶端通訊協議、結構和 API
  • mysqldumpmysqladmin 程式

MySQL 與 MariaDB 之間的相似性意味著,將 MySQL 移轉到 Azure Database for MySQL 的過程與將 MariaDB 移轉到 Azure Database for MariaDB 的過程非常相似。 系統之間有一些差異。 例如,MariaDB 支援 ColumnStore 和 Redis 快取,這兩者都可以用來優化效能。

備註

由於將資料庫從 MySQL 和 MariaDB 移轉至 Azure 非常類似,因此本課程會一起討論這些資料庫。

這很重要

撰寫本文時,適用於 MariaDB 的 Azure 資料庫沒有彈性伺服器部署選項。

什麼是 Azure Database for PostgreSQL?

如果您偏好 PostgreSQL,您可以選擇適用於 PostgreSQL 的 Azure 資料庫,以在 Azure 雲端中取得該資料庫伺服器的 PaaS 實作。 這提供與 MySQL 服務相同的可用性、效能、調整、安全性和系統管理優點。

您可以從三個部署選項中選擇:

適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器提供與 MySQL 彈性伺服器類似的優點。 您可以使用它來提供最高層級的可用性和方便的重新啟動。

在 Azure 中執行 MySQL、MariaDB 和 PostgreSQL 的 IaaS 選項

使用 IaaS 方法來復寫雲端中的實體架構。 如果您想要保留對系統以下作系統和軟體的更多控制權,您可以選擇 IaaS。

不過,您可以採用數種方法來實作 IaaS 方法,視您的需求,以及現有系統的複雜性而定。

隨即轉移

其中一種方法是在雲端中鏡像內部部署架構,方法是建立符合數據中心的虛擬網路基礎結構,為內部部署系統中的每部伺服器建立虛擬機。 您可以在虛擬機上安裝及設定資料庫管理系統軟體(MySQL、MariaDB 或 PostgreSQL)。 然後,您會 將系統隨即轉移 至雲端,而不需要變更用戶端程式代碼或設定。

使用此策略,您可以遵循移轉的逐步流程。 您會使用 Azure 網路閘道,以累加方式將系統的某些部分移至雲端,同時保留內部部署的其他元素。 您可以使用這種混合式方法,在每個步驟中穩定系統,並視需要復原。

使用預先建置的虛擬機

Marketplace 包含針對 MySQL、MariaDB 和 PostgreSQL 伺服器預先設定的虛擬機。 這些映像可節省時間,因為您不需要自行安裝資料庫伺服器軟體。 當您設定資料庫虛擬機時,請檢查在 Marketplace 中是否有具備正確資料庫軟體版本的虛擬機器映像檔,並考慮使用它。

您也可以將自定義虛擬機映射上傳至 Azure,並用它來建立虛擬機。 此映像可能包含您選擇的資料庫軟體,甚至是資料庫本身。 如需詳細資訊,請參閱 教學課程:使用 Azure PowerShell 建立 Azure VM 的自定義映像

使用 MySQL、MariaDB 或 PostgreSQL 容器

您可能考慮的另一種虛擬化技術是容器化。 容器就像虛擬機,但與主計算機共用作系統。 容器小於虛擬機,因此您可以在主計算機上執行更多容器,並更快速地啟動新的容器。 不過,您無法在 Windows 電腦上執行 Linux 容器,例如,因為作系統是共用的。 若要在實體伺服器上執行容器,您需要容器主機軟體,例如 Docker。 容器會從映像部署,例如虛擬機,這些映像可以包含資料庫軟體,例如 MySQL、MariaDB 和 PostgreSQL。

如果您想要在 Azure 中執行少量容器,請在虛擬機上安裝 Docker。 或者,如果您使用容器實例服務,您可以在 Azure 上執行容器,而不需要設定自己的虛擬機。 如果您想要輕鬆地管理需要彼此通訊的大量容器,請使用 Azure Kubernetes Service。