AlloyDB for PostgreSQL 的高可用性 (HA) 功能可確保資料庫正常運作,並在可用區或執行個體故障時,讓用戶端應用程式存取資料。可用區執行個體在服務中斷期間可能會長時間停機,但高可用性執行個體會自動在可用區之間,於使用中和待命節點之間容錯移轉。如要為執行個體設定高可用性,請參閱「查看叢集和執行個體設定」。
主要和次要執行個體
設定高可用性的 AlloyDB 主要執行個體包含一個啟用中節點和一個待命節點,兩者位於不同可用區。在儲存方面,AlloyDB 使用區域記錄檔持續器儲存資料庫預寫記錄檔 (WAL),並使用 AlloyDB Regional Storage 服務儲存資料區塊。執行個體的 IP 位址會使用負載平衡器,將流量轉送至運作中的節點。
處理寫入作業時,AlloyDB 資料庫會先將 WAL 寫入作用中節點上的區域記錄持續器,然後以非同步方式將記錄傳輸至 AlloyDB 的區域記錄處理伺服器,將記錄具體化為資料區塊,以便長期儲存。AlloyDB 接著會清除已成功處理的記錄。
下圖顯示高可用性架構。

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

圖 2. 容錯移轉後的流量。
容錯移轉會依下列事件順序進行:
- 使用中的節點或可用區故障。AlloyDB 健康狀態監控系統會定期檢查使用中的節點是否健康。如果健康狀態監控系統多次檢查失敗,就會啟動容錯移轉。這項偵測作業最多可能需要 30 秒。
- 資料庫會在待命節點上啟動,並開始接受連線。這項作業通常會在 30 秒內完成。
- 待命節點會升級為主要節點。新的主要節點會使用執行個體的靜態 IP 位址開始提供資料,用戶端查詢也會在重新連線後成功。
- AlloyDB 會在先前運作中的可用區重新建立待命節點。這個待命節點隨後即可用於日後的容錯移轉。
需求條件
如要讓 AlloyDB 允許容錯移轉,設定必須符合下列規定:
- 主要執行個體必須處於正常運作狀態 (未停止或正在維護)。
- 待命可用區和待命節點都必須健康狀態良好。
熱待命架構
搭載 PostgreSQL 18 的 AlloyDB 執行個體,可透過熱備援功能改善容錯移轉。
啟用熱備援功能後,AlloyDB 會將備用節點做為副本執行。在容錯移轉期間,這個副本可以更快轉換為讀寫模式,縮短停機時間。此外,複製功能可啟用暖快取,有助於確保容錯移轉後的查詢效能一致。
下圖顯示高可用性架構,其中包含熱備援。

圖 3. 熱待命。
讀取集區
含有兩個以上節點的讀取集區執行個體具備高可用性。節點會平均分布在各個可用區,因此能因應故障事件。如果發生節點或可用區故障等事件,區域性負載平衡器會將流量轉送至其餘健康狀態良好的節點,確保用戶端不會發生停機。
主要執行個體容錯移轉期間,讀取集區會保持上線狀態。容錯移轉期間,主要執行個體的 WAL 複製作業會暫時暫停,並在主要執行個體復原後自動恢復。