Wysoka dostępność w usłudze Azure Cosmos DB for PostgreSQL
DOTYCZY: Usługa Azure Cosmos DB for PostgreSQL (obsługiwana przez rozszerzenie bazy danych Citus do bazy danych PostgreSQL)
Wysoka dostępność minimalizuje przestoje bazy danych dzięki zachowaniu replik rezerwowych każdego węzła w klastrze. Jeśli węzeł ulegnie awarii, usługa Azure Cosmos DB for PostgreSQL przełącza połączenia przychodzące z uszkodzonego węzła na jego rezerwę. Przez kilka minut węzeł będzie działał w trybie failover, a dzięki synchronicznej replikacji przesyłania strumieniowego PostgreSQL awansowane węzły zawsze będą zawierały świeże dane.
Wszystkie węzły podstawowe w klastrze są aprowidowane w jednej strefie dostępności, aby zapewnić lepsze opóźnienie między węzłami. Preferowana strefa dostępności umożliwia umieszczenie wszystkich węzłów klastra w tej samej strefie dostępności, w której jest wdrażana aplikacja. Bliskość ta może jeszcze bardziej zwiększyć wydajność dzięki zmniejszeniu opóźnienia bazy danych aplikacji. Węzły rezerwowe są aprowidowane w innej strefie dostępności. W witrynie Azure Portal zostanie wyświetlona strefa dostępności każdego węzła podstawowego w klastrze. Możesz również sprawdzić strefę dostępności każdego węzła w klastrze przy użyciu jednej z metod programistycznych, takich jak interfejsy API REST.
Nawet bez włączonej wysokiej dostępności każdy węzeł ma własny magazyn lokalnie nadmiarowy (LRS) z trzema synchronicznymi replikami obsługiwanymi przez usługę Azure Storage. Jeśli wystąpi awaria pojedynczej repliki, zostanie wykryta przez usługę Azure Storage i zostanie w sposób niewidoczny dla jej ponownego utworzenia. Aby uzyskać trwałość magazynu LRS, zobacz metryki na tej stronie.
Po włączeniu wysokiej dostępności usługa Azure Cosmos DB for PostgreSQL uruchamia jeden węzeł rezerwowy dla każdego węzła podstawowego w klastrze. Podstawowa i jego rezerwa używają synchronicznej replikacji postgreSQL. Ta replikacja umożliwia klientom przewidywalny przestój w przypadku awarii węzła podstawowego. W skrócie nasza usługa wykrywa błąd w węzłach podstawowych i przechodzi w tryb failover do węzłów rezerwowych z zerową utratą danych.
Aby korzystać z wysokiej dostępności w węźle koordynacji, aplikacje bazy danych muszą wykrywać i ponawiać próby porzuconych połączeń i nieudanych transakcji. Nowo promowany koordynator jest dostępny z tym samym parametry połączenia.
Stany wysokiej dostępności
Odzyskiwanie można podzielić na trzy etapy: wykrywanie, tryb failover i pełne odzyskiwanie. Usługa Azure Cosmos DB for PostgreSQL przeprowadza okresowe kontrole kondycji w każdym węźle, a po czterech nieudanych kontrolach określa, że węzeł nie działa. Usługa Azure Cosmos DB for PostgreSQL następnie promuje stan wstrzymania do stanu węzła podstawowego (tryb failover) i tworzy nowy stan wstrzymania do działania. Rozpoczyna się replikacja przesyłania strumieniowego, przenosząc nowy węzeł do aktualności. Gdy wszystkie dane zostały zreplikowane, węzeł osiągnął pełne odzyskiwanie.
Usługa Azure Cosmos DB for PostgreSQL wyświetla stan postępu pracy w trybie failover na stronie Przegląd klastrów w witrynie Azure Portal.
- W dobrej kondycji: wysoka dostępność jest włączona, a węzeł jest w pełni replikowany do trybu wstrzymania.
- Przejście w tryb failover w toku: Wykryto błąd w węźle podstawowym i zainicjowano przejście w tryb failover do trybu failover. Ten stan przechodzi do tworzenia trybu wstrzymania po zakończeniu pracy w trybie failover do węzła rezerwowego, a rezerwa staje się nowym podstawowym.
- Tworzenie rezerw: poprzednia rezerwa została podwyższona do poziomu podstawowego, a dla niej jest tworzona nowa rezerwa. Gdy nowy pomocniczy będzie gotowy, ten stan przechodzi do replikacji w toku.
- Trwa replikacja: nowy węzeł rezerwowy jest aprowizowany, a synchronizacja danych jest w toku. Gdy wszystkie dane są replikowane do nowej rezerwy, replikacja synchroniczna jest włączona między węzłami podstawowymi i rezerwowymi, a stan węzłów przechodzi z powrotem w dobrej kondycji.
- Nie: wysoka dostępność nie jest włączona w tym węźle.
Następne kroki
- Dowiedz się, jak włączyć wysoką dostępność w klastrze.
- Dowiedz się więcej o strefach dostępności w usłudze Azure Cosmos DB for PostgreSQL.