AlloyDB 高可用性總覽

本文將概略說明 AlloyDB for PostgreSQL 執行個體的高可用性 (HA) 設定。如要為 HA 設定新的執行個體,或在現有執行個體上啟用 HA,請參閱「查看叢集和執行個體設定」。

高可用性設定可確保即使發生故障事件,作業也能持續進行。雖然區域執行個體在發生故障事件時可能會長時間停機,但高可用性執行個體可確保用戶端應用程式持續存取資料。

主要和次要執行個體

設定高可用性的 AlloyDB 主要執行個體包含常態啟用的節點和待命節點,這兩個節點位於不同區域。在儲存方面,AlloyDB 會使用區域記錄檔保存器儲存資料庫預先寫入記錄檔 (WAL),並使用 AlloyDB 的區域儲存空間服務儲存資料區塊。執行個體的 IP 位址會使用負載平衡器,將流量轉送至作用中節點。

處理寫入作業時,AlloyDB 資料庫會先將 WAL 寫入作用中節點的區域記錄保存器,然後將記錄非同步傳輸至 AlloyDB 的區域記錄處理伺服器,這些伺服器會將記錄具體化為資料區塊,以供長期儲存。AlloyDB 接著會清除已成功處理的記錄。

下圖顯示高可用性架構。

高可用性架構

圖 1. 高可用性架構。

容錯移轉

如果作用中節點無法使用,AlloyDB 會自動將主要執行個體容錯移轉至待命節點,該節點會成為新的作用中節點。負載平衡器會辨識新的有效節點,並開始將流量轉送至該節點。容錯移轉後,即使原始節點恢復連線,新的有效節點仍會保持有效狀態。由於系統會將 WAL 同步寫入區域記錄保留器,因此容錯移轉期間不會遺失資料。

下圖顯示容錯移轉後的流量流動情形。

容錯移轉後的流量

圖 2. 容錯移轉後的流量。

容錯移轉會依下列事件順序發生:

  1. 使用中節點或區域發生故障。AlloyDB 健康狀態監控系統會定期檢查有效節點是否正常運作。如果健康狀態監控系統多次檢查失敗,就會啟動容錯移轉。這項偵測作業最多可能需要 30 秒。
  2. 資料庫會在待命節點上啟動,並開始接受連線。 這通常會在 30 秒內完成。
  3. 待命節點將升級為主要節點。新主要節點會使用執行個體的靜態 IP 位址開始提供資料,且用戶端查詢會在重新連線後成功。
  4. AlloyDB 會在先前作用中的區域中重建待命節點。這個待命節點隨後即可用於日後的容錯移轉。

需求條件

為了讓 AlloyDB 允許容錯移轉,設定必須符合以下條件要求:

  • 主要執行個體必須處於正常作業狀態 (非停止或維護中)。
  • 待命區域和待命節點都必須運作正常。

新架構

使用 PostgreSQL 18 建立的 AlloyDB 執行個體,可透過待命節點 (熱待命節點) 上的唯讀備用資源,提供更完善的容錯移轉功能。

AlloyDB 包含熱待機節點上的唯讀副本。在容錯移轉期間,這個唯讀副本可以更快轉換為讀寫模式,縮短停機時間。此外,唯讀備用資源可啟用暖快取,有助於確保容錯移轉後查詢效能一致。

下圖顯示包含熱待機的高可用性架構。熱待命

圖 3. 熱待命。

讀取集區

含有兩個以上節點的讀取集區執行個體具備高可用性。節點平均分布在各個可用區,因此可因應故障事件。如果發生節點或可用區故障等失敗事件,區域負載平衡器會將流量轉送至其餘運作正常的節點,確保用戶端不會發生停機情形。

主要執行個體容錯移轉期間,讀取集區會保持連線狀態。容錯移轉期間,系統會暫時停止從主要執行個體複製 WAL,並在主要執行個體復原後自動繼續複製。

後續步驟