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 系統,因此您不必擔心建構或執行虛擬伺服器或網路的問題。

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

適用於 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 資料庫是 MariaDB 在 Azure 雲端中的 PaaS 實作。

MariaDB 設計用來作為 MySQL 的插入式替換,因此您可以用 MariaDB 資料庫取代 MySQL 資料庫 ,而不需要對用戶端應用程式進行大量的重新編碼,或變更資料庫結構描述。 MariaDB 的許多功能與 MySQL 中的相同,例如:

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

MySQL 與 MariaDB 之間的相似性表示,從 MySQL 移轉到適用於 MySQL 的 Azure 資料庫與從 MariaDB 移轉到到適用於 MariaDB 的 Azure 資料庫,兩者的移轉工作非常相似。 系統之間有一些差異。 例如,MariaDB 支援 ColumnStore 和 Azure Cache for Redis,這兩者皆可用於最佳化效能。

注意

由於將資料庫從 MySQL 和 MariaDB 移轉至 Azure 的方式很相似,因此在本課程中會一併涵蓋這兩種方式。

重要

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

什麼是適用於 PostgreSQL 的 Azure 資料庫? (部分機器翻譯)

如果您偏好使用 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。