Azure Cosmos DB for MongoDB 虛擬核心中的高可用性
適用於: MongoDB 虛擬核心
區域內高可用性 (HA) 會藉由維護叢集中每個分區的待命複本,來避免資料庫停機。 如果分區基於任何原因而變成沒有回應,Azure Cosmos DB for MongoDB V 核心會將失敗分區的連入連線切換至其待命分區。 發生故障轉移時,升級的分區一律會透過同步復寫擁有全新的數據。
叢集中的所有主要分區都會佈建至一個可用性區域 (AZ),以在分區之間取得更好的延遲。 待命分區會佈建至另一個可用性區域。
即使未啟用 HA,每個分區都會有本身的本地備援儲存體 (LRS),並具有 Azure 儲存體服務所維護的三個同步複本。 這三個複本全都位於叢集的 Azure 區域中。 若有單一複本失敗,Azure 儲存體服務會偵測到該失敗,並以透明的方式重新建立失敗的複本。 如需 LRS 儲存體持久性,請參閱此頁面上的計量。
HA 啟用時,Azure Cosmos DB for MongoDB V 核心會針對叢集中的每個主要分區執行一個待命分區。 每個主要分區和待命分區都有相同的計算和儲存體設定。 主要分區及其待命分區會使用同步複寫。 這種類型的複寫可讓您在叢集中的主要分區和待命分區上一律具有相同的資料。 簡言之,我們的服務會偵測主要分區上的失敗,並故障轉移至零數據遺失的待命分區。
不論容錯移轉為何,叢集連接字串一律維持不變。 這可讓服務將實體分區中的變更抽象化,而這些分區為來自應用程式的要求提供服務。
在叢集上啟用區域高可用性時,每個叢集分區都會涵蓋可用性的 99.99% 服務等級協定 (SLA)。
高可用性可以在叢集建立時啟用。 您也可以在現有的 Azure Cosmos DB for MongoDB V 核心上隨時啟用和停用高可用性。 在 Azure Cosmos DB for MongoDB V 核心上啟用或停用高可用性時,不會發生任何資料庫停機。
容錯移轉期間發生什麼情況
每個分區容錯移轉都包含三個階段:無法使用偵測、切換至待命分區,以及重新建立待命分區。 此服務會透過執行定期健康情況檢查,持續監視叢集中每個主要分區和待命分區的可用性。 當健康情況檢查可靠地指出分區變成沒有回應,且必須宣告為失敗時,系統會起始實際容錯移轉 (切換) 至待命分區。
在切換階段期間,資料庫讀取和寫入會重新導向至待命分區。 每個主要分區與待命分區之間的同步複寫可確保待命分區一律具有與其主要分區相同的資料集。 這可讓所有容錯移轉在執行後沒有資料遺失。 切換至待命分區時不會停機進行讀取。 寫入作業可能需要在切換階段期間重試內部服務。 這些重試可能會被視為應用程式端寫入速度緩慢的原因。
一旦分區容錯移轉完成,叢集就會完全正常運作。 返回原始高可用性設定的最後一個步驟是重新建立待命分區。 重新建立此待命分區時,不會對主要分區造成停機或效能影響。