Azure Cosmos DB for PostgreSQL 中的高可用性

適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的超大規模 (Citus) 資料庫延伸模組提供)

高可用性 (HA) 藉由維護叢集中每個節點的待命複本,將資料庫停機時間降至最低。 如果節點關閉,Azure Cosmos DB for PostgreSQL 會將傳入連線從失敗的節點切換至其待命節點。 容錯移轉會在數分內發生,升階的節點一律會透過 PostgreSQL 同步串流複寫獲得更新的資料。

叢集中的所有主要節點都會佈建到一個可用性區域,以改善節點之間的延遲。 若有偏好的可用性區域,所有叢集節點都能放於部署應用程式的同一可用性區域內。 這類鄰近性可減少應用程式資料庫延遲,藉此進一步改善效能。 待命節點會佈建在另一個可用性區域。 Azure 入口網站會顯示叢集中每個主要節點的可用性區域, 您也可利用 REST API 等程式設計方法檢查叢集中每個節點的可用性區域。

即使未啟用 HA,每個節點都有自己的本地備援儲存體 (LRS),並具有 Azure 儲存體服務所維護的三個同步複本。 如果發生單一複本失敗,則 Azure 儲存體服務會偵測到該失敗,並且會以透明方式重新建立失敗。 如需 LRS 儲存體持久性,請參閱此頁面上的計量。

啟用高可用性時,Azure Cosmos DB for PostgreSQL 會針對叢集中的每個主要節點執行一個待命節點。 主要及其待命節點使用同步 PostgreSQL 複寫。 如果主要節點失敗,此複寫可讓客戶有可預測的停機時間。 簡單地說,我們的服務會偵測主要節點上的失敗,並容錯移轉至沒有資料遺失的待命節點。

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

高可用性狀態

復原可以分成三個階段:偵測、容錯移轉和完整復原。 Azure Cosmos DB for PostgreSQL 在每個節點上執行定期健康情況檢查,並在四次失敗檢查之後,判斷節點已關閉。 接著,Azure Cosmos DB for PostgreSQL 會升階待命節點為主要節點 (容錯移轉),並建立新的準待命節點。 串流複寫會開始,讓新的節點更新為最新狀態。 複寫所有資料後,節點已達到完整復原。

Azure Cosmos DB for PostgreSQL 會在 Azure 入口網站中叢集的 [概觀] 頁面上,顯示其容錯移轉進度狀態。

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

下一步