適用於 PostgreSQL 的 Azure 資料庫中的高可用性–超大規模 (Citus)

高可用性 (HA) 在伺服器群組中維護每個節點的待命複本,以避免資料庫停機。 如果節點停止運作,超大規模 (Citus) 會將失敗節點的連入連線切換到其待命。 容錯移轉會在數分鐘內發生,而且升級的節點一律會透過於 postgresql 同步串流複寫來取得最新資料。

即使未啟用 HA,每個超大規模 (Citus) 節點都有它自己的本機多餘儲存體 (LRS) ,且 Azure 儲存體服務所維護的三個同步複本。 如果有單一複本失敗,Azure 儲存體服務偵測到它,並以透明方式重新建立。 如需 LRS 儲存體耐久性,請參閱 此頁面上的度量。

當 HA 啟用時, 超大規模 (Citus) 會針對伺服器群組中的每個主要節點執行一個待命節點。 主要複本和其待命使用同步于 postgresql 複寫。 如果主要節點失敗,則此複寫可讓客戶有可預測的停機時間。 簡而言之,我們的服務會偵測到主要節點上的失敗,並容錯移轉至待命節點,但不會遺失資料。

若要在協調器節點上利用 HA,資料庫應用程式必須偵測並重試中斷的連接和失敗的交易。 您可以使用相同的連接字串來存取新升級的協調器。

高可用性狀態

復原可以分為三個階段:偵測、容錯移轉和完整復原。 超大規模 (Citus) 會在每個節點上執行週期性健康情況檢查,並在四次失敗檢查後判斷節點已關閉。 超大規模 (Citus) 然後將待命升級為主要節點狀態 (容錯移轉) ,並布建新的待命。 串流複寫會開始,使新節點保持最新狀態。 當所有資料都已複寫之後,節點就已達到完整復原。

超大規模 (Citus) 會在 Azure 入口網站中的伺服器群組的 [總覽] 頁面上顯示其容錯移轉進度狀態。

  • 狀況良好: HA 已啟用,且節點已完全複寫到其待命。
  • 正在進行容錯移轉:在主要節點上偵測到失敗,並已起始容錯移轉至待命。 當容錯移轉至待命節點完成時,此狀態將會轉換為「 正在建立待命 」,而待命會變成新的主要複本。
  • 正在建立待命:先前的待命已升級為主要,並且正在為其建立新的待命。 當新的次要資料庫就緒時,此狀態會轉換成 正在進行中的複寫。
  • 複寫進行中:已布建新的待命節點,正在進行資料同步處理。 將所有資料複寫到新的待命之後,主要和待命節點之間的同步複寫將會啟用,且節點的狀態將會轉換回 狀況良好
  • :此節點上未啟用 HA。

下一步