描述適用於 PaaS 部署的高可用性和災害復原選項
說到可用性,每個 PaaS 的情況都不同;您只能設定 Azure 提供的選項。
若是 Azure SQL Database 和 Azure SQL Database 受控執行個體以 SQL Server 為基礎時的選項,這些選項為主動式異地複寫 (僅適用於 Azure SQL Database) 和自動容錯移轉群組 (Azure SQL Database 或 Azure SQL Database 受控執行個體)。
適用於 MySQL 的 Azure 資料庫具有服務等級協定,可保證99.99 的可用性,也就是幾乎不會發生停機。 針對適用於 MySQL 的 Azure 資料庫,如果發生節點層級的問題 (例如硬體故障),則會啟動內建的容錯移轉機制。 MySQL 資料庫的所有交易式變更都會在認可時同步寫入儲存體。 如果發生節點層級中斷,資料庫伺服器會自動建立新節點,然後連結資料儲存體。
從應用程式的觀點來看,您必須為必要的重試邏輯撰寫程式碼,因為所有連線都會在啟動新節點時中斷,而且任何進行中的交易都會遺失。 此程序被視為任何雲端應用程式的最佳做法,因為其設計訴求是處理暫時性失敗。
適用於 PostgreSQL 的 Azure 資料庫會在其標準部署模型中使用與 MySQL 類似的模型;不過,Azure PostgreSQL 還會提供稱為 Citus 的超大規模解決方案。 Citus 可為伺服器群組提供擴增的額外高可用性。 一旦啟用,伺服器群組的每個節點上都會設定待命複本,但這也會增加成本,因為這會導致群組中的伺服器數目加倍。 在此情況,如果原始節點發生問題 (例如變得沒有回應或完全失敗),則待命節點會取而代之。 資料會透過 PostgreSQL 同步串流複寫來保持同步。
如同適用於 MySQL 的 Azure 資料庫,解決方案若使用適用於 PostgreSQL 的 Azure 資料庫也必須在應用程式中包含重試邏輯,以因應中斷的連線和遺失的進行中交易。
適用於 MySQL 和 PostgreSQL 的 Azure 資料庫都支援讀取複本的選項。 這表示複本可用於報告之類的活動,以從主要資料庫卸載工作。 讀取複本也會增強可用性,因為其存在於另一個區域中。