這項參考架構最適合用於下列用途:
- 除了區域防護外,您還需要為任務關鍵型應用程式提供區域防護。
這個可用性參考架構會在區域內納入唯讀副本,以確保高可用性,並在區域間納入唯讀副本,以確保災難復原能力。這個多區域部署作業可防範重大中斷,包括大範圍停電和大規模天災。
可用性參考架構注意事項
評估這項可用性參考架構時,請考量下列因素:
- 區域內和跨區域的網路延遲和頻寬
- 資料庫和應用程式伺服器的地理位置
- 將唯讀工作負載卸載至副本的策略
- 在遠端 DR 區域部署高可用性
您可能需要唯讀負載平衡,特別是使用區域應用程式伺服器時,這樣要求就會轉送至最接近的資料庫,以獲得最快的回應。詳情請參閱「將要求轉送至多區域傳統型應用程式負載平衡器」。
跨區域複製作業可能需要額外監控,確保複製延遲不會因交易負載或網路容量而開始增加。
為確保 DR 成功,請務必執行徹底的 DR 測試。如果應用程式伺服器與資料庫之間有任何高延遲網路連線,請務必測試應用程式功能和輸送量。
區域內高可用性和跨區域災難復原架構
圖 1 顯示建議的高可用性和 DR 設定,其中有三個可用區和兩個區域,以及三個讀取副本待命資料庫。
圖 1. AlloyDB Omni,提供備份和跨區域高可用性選項。
如圖 1 所示,同步串流複製到本機 (同一區域內) 副本可提供高可用性,而非同步串流複製到地理上不同的遠端副本,則可提供區域性災難復原保護。在整個設定中,只有主要執行個體可以執行讀寫作業,其他副本則可處理讀取查詢。
將主要執行個體到區域內備用資源的複製作業設定為同步模式,並將主要執行個體到跨區域備用資源的複製作業設定為非同步模式,避免延遲影響主要執行個體的寫入效能。如果發生區域性故障,這項設定可能會導致 RPO 大於零。不過,如果發生故障,這項設定可加快 RTO。這是因為主要資料庫不需要等待遠端待命資料庫確認,即可提交交易。
您可以讓額外的跨區域備份作業從讀取副本資料庫進行備份,藉此為從主要資料庫進行的備份作業增加備援。
唯讀備用資源備份
使用 Kubernetes 部署作業時,系統會自動在替代區域中設定次要部署作業,並提供額外備份。使用非 Kubernetes 部署時,您可以選擇部署備份,以滿足業務需求。請考量下列事項:
- 如果遠端備份可能受到區域故障影響,您需要在替代區域啟動額外備份。
- 如要備援備份,您需要備份區域唯讀副本。
唯讀備用資源位置,支援多可用區可用性
在非 Kubernetes 部署作業中,您可以選擇特定唯讀備用資源,在主要資源故障時擔任主要資源的角色。AlloyDB Omni Kubernetes 運算子會自動處理區域中的節點放置位置,以及 Pod 應部署至哪些節點。影響放置位置的某些設定選項 (例如 Pod 親和性和容許度),可在用於透過 AlloyDB Omni 運算子部署的資料庫設定中找到。
從僅限高可用性架構遷移至高可用性和災難復原架構
如果不是 Kubernetes 部署作業,您需要在新區域中建立新的待命狀態,並將此設定新增至 Patroni 叢集設定。如果是 Kubernetes 部署作業,您需要建立新的 Kubernetes 地區部署作業 (稱為次要資料庫叢集),並啟用跨資料中心複製功能。
導入作業
選擇可用性參考架構時,請注意下列優點、限制和選項。
優點
- 防範可用區和執行個體故障
- 防範區域性故障
- 資料庫發生區域性故障時,RTO 會縮短
限制
- 您可以透過同步複製功能縮短區域復原的 RPO,但這種做法會導致交易效能的延遲時間增加。針對災難復原和遠端區域複製,建議您只使用非同步複製。
- 以同步模式設定 PostgreSQL WAL 串流,可在正常運作或一般容錯移轉期間,確保資料不會遺失 (
RPO=0
)。不過,這種做法無法避免特定雙重故障情況下的資料遺失,例如所有待命執行個體都遺失或無法從主要執行個體存取,且主要執行個體隨即重新啟動。