SQL Server 2012 (11.0.5058.0) Enterprise Edition
Wir haben 8 Verfügbarkeitsgruppen in einem 2 (HA) + 1 (DR) -Cluster und unsere Überwachungs-DMVs melden Ergebnisse, die mich verwirren. 6 Verfügbarkeitsgruppen sind für HA und DR konfiguriert, 1 ist nur für HA konfiguriert und 1 ist nur für DR konfiguriert.
Jede der 6 HA / DR-Verfügbarkeitsgruppen hat "SQLB" als primäres und "SQLA" als sekundäres (synchrones) HA-Replikat und "SQLC" als sekundäres (asynchrones) Replikat.
Auf beiden Sekundärteilen:
SELECT dhags.group_id, dhags.synchronization_health_desc
FROM sys.dm_hadr_availability_group_states dhags
meldet, dass alle Synchronisierungszustände der Verfügbarkeitsgruppenreplikation NOT_HEALTHY
und sind
select replica_id,synchronization_health_desc
from sys.dm_hadr_availability_replica_states
meldet, dass alle Replikate einen Synchronisierungszustand von haben HEALTHY
.
Das primäre Replikat meldet alle Verfügbarkeitsgruppen und Replikate mit einem Synchronisierungszustand von HEALTHY
.
Obwohl ich verstehe, dass einer über den Zustand der Replikatsynchronisierung und der andere über den Zustand der AG-Synchronisierung berichtet, erscheint es mir logisch, dass wenn der detailliertere Zustand (AG) nicht gesund wäre, dies den Gesamtzustand des breiteren Kontexts (Replikat) beeinträchtigen würde. . Ich kann keine MSDN-Dokumentation finden, die beschreibt, wie der Zustand auf jeder Ebene bestimmt wird.
Warum melden die Secondaries den NOT_HEALTHY
Synchronisierungszustand der Verfügbarkeitsgruppe, aber den HEALTHY
Synchronisierungszustand der Replikate, und warum unterscheidet sich dieser vom Primärbericht?
quelle
NOT_HEALTHY
auf dem sekundären ASYNC-Replikat sehen?NOT_HEALTHY
sehe sowohl auf den SYNC- als auch auf den ASYNC-Replikaten.Antworten:
Leider ist der Status sys.dm_hadr_availability_replica kein verlässlicher Indikator für den Zustand des Replikats. Hier ist das Connect-Element für einen der Fehler, bei denen diese DMV nicht mehr aktualisiert wird. Beachten Sie in den Kommentaren, dass log_send_queue_size in der DMV sys.dm_hadr_database_replica_states 0 anzeigt, selbst wenn Protokolldaten gesendet werden sollen.
Beachten Sie, dass das Element Verbinden als nicht repariert markiert ist. Traurige Posaune.
quelle
sys.dm_hadr_availability_group_states.synchronization_health_desc
(von dem ich verstehe, dass es über den Gesundheitszustand der gesamten Gruppe berichtet) wirdNOT_HEALTHY
über Sekundärdaten berichtet , aberHEALTHY
über die Primärdaten (3 Repliken). Dokumente beschreiben die Spalte als "Rollup der Synchronisationsgesundheit aller Verfügbarkeitsreplikate in der Verfügbarkeitsgruppe". Dies zeigt Unterschiede innerhalb des Systems, ohne auch nur sys.dm_hadr_availability_replica_states zu betrachten (vermutlich von wo aus die Daten aufgerollt werden).