Azure Cosmos DB for PostgreSQL 中的高可用性
適用於: 適用于 PostgreSQL 的 Azure Cosmos DB (由 Citus 資料庫擴充功能 支援 PostgreSQL)
高可用性 (HA) 會藉由維護叢集中每個節點的待命複本,以避免資料庫停機。 如果節點關閉,Azure Cosmos DB for PostgreSQL 會將傳入連線從失敗的節點切換至其待命節點。 容錯移轉會在幾分鐘內發生,而升級的節點一律會透過 PostgreSQL 同步串流複寫擁有全新的資料。
為了讓節點之間的延遲度較良好,會將叢集中所有的主要節點佈建在同一個可用性區域。 慣用的可用性區域可讓您將所有叢集節點放在部署應用程式的相同可用性區域中。 此鄰近性可藉由減少應用程式資料庫延遲來進一步改善效能。 待命節點會布建到另一個可用性區域。 Azure 入口網站會顯示叢集中每個主要節點的可用性區域。
即使未啟用 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,且節點會完全複寫至其待命節點。
- 進行中的容錯移轉:在主要節點上偵測到失敗,並起始對待命節點的容錯移轉。 此狀態會在容錯移轉至待命節點完成之後轉換成 建立待命 節點,而待命會變成新的主要節點。
- 建立待命節點:先前的待命節點已升階為主要節點,且正在為其建立新的待命節點。 當新的次要複本就緒時,此狀態會轉換為 進行中的複寫。
- 複寫進行中:已佈建新的待命節點,且資料同步處理正在進行中。 一旦所有資料複寫到新的待命,主要節點和待命節點之間就會啟用同步複寫,而節點的狀態會轉換回 狀況良好。
- 否:此節點上未啟用高可用性。
下一步
- 了解如何在叢集中啟用高可用性