sys.dm_hadr_availability_replica_states (Transact-SQL)

Gilt für:SQL Server

Gibt eine Zeile für jedes lokale Replikat und eine Zeile für jedes Remotereplikat zurück, das sich in derselben Always On-Verfügbarkeitsgruppe wie ein lokales Replikat befindet. Jede Zeile enthält Informationen zum Zustand eines angegebenen Replikats.

Wichtig

Um Informationen zu jedem Replikat in einer bestimmten Verfügbarkeitsgruppe zu erhalten, fragen Sie sys.dm_hadr_availability_replica_states auf der Serverinstanz ab, die das primäre Replikat hostet. Findet die Abfrage in einer Serverinstanz statt, die ein sekundäres Replikat einer Verfügbarkeitsgruppe hostet, gibt diese dynamische Verwaltungssicht nur lokale Informationen für die Verfügbarkeitsgruppe zurück.

Spaltenname Datentyp BESCHREIBUNG
replica_id uniqueidentifier Eindeutiger Bezeichner des Replikats.
group_id uniqueidentifier Eindeutiger Bezeichner der Verfügbarkeitsgruppe.
is_local bit Gibt an, ob es sich um ein lokales Replikat handelt:

0 = Gibt ein sekundäres Remotereplikat in einer Verfügbarkeitsgruppe an, deren primäres Replikat von der lokalen Serverinstanz gehostet wird. Dieser Wert kommt nur am primären Replikatspeicherort vor.

1 = Gibt ein lokales Replikat an. Auf sekundären Replikaten ist dies der einzige verfügbare Wert für die Verfügbarkeitsgruppe, zu der das Replikat gehört.
role tinyint Aktuelle Always On Verfügbarkeitsgruppenrolle eines lokalen Replikats oder eines verbundenen Remotereplikats:

0 = Wird aufgelöst

1 = Primär

2 = Sekundär

Informationen über Rollen in Always On-Verfügbarkeitsgruppen finden Sie unter Übersicht über Always On-Verfügbarkeitsgruppen (SQL Server).
role_desc nvarchar(60) Beschreibung der Rolle, eine der folgenden:

RESOLVING

PRIMARY

SECONDARY
operational_state tinyint Aktueller Betriebszustand des Replikats:

0 = Ausstehendes Failover

1 = Ausstehend

2 = Online

3 = Offline

4 = Fehler

5 = Fehler, kein Quorum

NULL = Das Replikat ist nicht lokal.

Weitere Informationen finden Sie weiter unten in diesem Thema unter Rollen und Betriebszustände.
operational_state_desc nvarchar(60) Beschreibung der operational_state, eine der folgenden:

PENDING_FAILOVER

PENDING (AUSSTEHEND)

ONLINE

OFFLINE

FAILED

FAILED_NO_QUORUM

NULL
recovery_health tinyint Rollup der database_state Spalte der dynamischen Verwaltungsansicht sys.dm_hadr_database_replica_states. Im Folgenden sind die möglichen Werte und ihre Beschreibungen aufgeführt.

0 : In Bearbeitung. Mindestens eine verknüpfte Datenbank verfügt über einen anderen Datenbankstatus als ONLINE (database_state ist nicht 0).

1 : Online. Alle verknüpften Datenbanken weisen den Datenbankstatus ONLINE auf (database_state ist 0).

NULL : is_local = 0
recovery_health_desc nvarchar(60) Beschreibung der recovery_health, eine der folgenden:

ONLINE_IN_PROGRESS

ONLINE

NULL
synchronization_health tinyint Gibt ein Rollup des Datenbanksynchronisierungsstatus (synchronization_state) aller verknüpften Verfügbarkeitsdatenbanken (auch als Replikate bezeichnet) und den Verfügbarkeitsmodus des Replikats (Modus für synchrone Commits oder asynchrone Commits) an. Das Rollup spiegelt den am wenigsten fehlerfreien akkumulierten Zustand der Datenbanken auf dem Replikat wider. Im Folgenden finden Sie die möglichen Werte und ihre Beschreibungen.

0 : Nicht fehlerfrei. Mindestens eine verknüpfte Datenbank weist den Status NOT SYNCHRONIZING auf.

1 : Teilweise fehlerfrei. Einige Replikate befinden sich nicht im Zielsynchronisierungsstatus: Replikate mit synchronem Commit sollten synchronisiert sein, und Replikate mit asynchronem Commit sollten synchronisiert werden.

2: Fehlerfrei. Alle Replikate befinden sich im Zielsynchronisierungsstatus: Replikate mit synchronem Commit sind synchronisiert, und Replikate mit asynchronem Commit werden synchronisiert.
synchronization_health_desc nvarchar(60) Beschreibung der synchronization_health, eine der folgenden:

NOT_HEALTHY

PARTIALLY_HEALTHY

HEALTHY
connected_state tinyint Gibt an, ob derzeit ein sekundäres Replikat mit dem primären Replikat verbunden ist. Die möglichen Werte werden unten mit ihren Beschreibungen angezeigt.

0: Getrennt. Die Antwort eines Verfügbarkeitsreplikats auf den Status DISCONNECTED hängt von seiner Rolle ab: Wenn ein sekundäres Replikat getrennt wird, werden die sekundären Datenbanken auf dem primären Replikat als NOT SYNCHRONIZED markiert, das darauf wartet, dass das sekundäre Replikat erneut verbunden wird; Auf einem sekundären Replikat versucht das sekundäre Replikat nach dem Erkennen, dass es getrennt ist, eine erneute Verbindung mit dem primären Replikat herzustellen.

1: Verbunden.

Jedes primäre Replikat verfolgt den Verbindungsstatus für jedes sekundäre Replikat in der gleichen Verfügbarkeitsgruppe nach. Sekundäre Replikate verfolgen nur den Verbindungsstatus des primären Replikats nach.
connected_state_desc nvarchar(60) Beschreibung von connection_state, einer von:

DISCONNECTED

CONNECTED
last_connect_error_number int Die Nummer des letzten Verbindungsfehlers.
last_connect_error_description nvarchar(1024) Text der last_connect_error_number Nachricht.
last_connect_error_timestamp datetime Datums- und Uhrzeitzeitstempel, der angibt, wann der last_connect_error_number Fehler aufgetreten ist.

Rollen und Betriebszustände

Die Rolle, Rolle, gibt den Zustand eines bestimmten Verfügbarkeitsreplikats und den Betriebsstatus operational_state an, ob das Replikat bereit ist, Clientanforderungen für die gesamte Datenbank des Verfügbarkeitsreplikats zu verarbeiten. Im Folgenden finden Sie eine Zusammenfassung der Betriebszustände, die für jede Rolle möglich sind: RESOLVING, PRIMARY und SECONDARY.

LÖSUNG: Wenn sich ein Verfügbarkeitsreplikat in der Rolle RESOLVING befindet, sind die möglichen Betriebszustände wie in der folgenden Tabelle dargestellt.

Betriebsstatus BESCHREIBUNG
PENDING_FAILOVER Derzeit wird ein Failoverbefehl für die Verfügbarkeitsgruppe verarbeitet.
OFFLINE Alle Konfigurationsdaten für das Verfügbarkeitsreplikat wurden im WSFC-Cluster und auch in den lokalen Metadaten aktualisiert, aber in der Verfügbarkeitsgruppe fehlt derzeit ein primäres Replikat.
FAILED Beim Versuch, Informationen aus dem WSFC-Cluster abzurufen, ist ein Lesefehler aufgetreten.
FAILED_NO_QUORUM Der lokale WSFC-Knoten verfügt nicht über ein Quorum. Dies ist ein abgeleiteter Status.

PRIMÄRE: Wenn ein Verfügbarkeitsreplikat die ROLLE PRIMARY ausführt, ist es derzeit das primäre Replikat. Die möglichen Betriebszustände sind wie in der folgenden Tabelle dargestellt.

Betriebsstatus BESCHREIBUNG
PENDING (AUSSTEHEND) Dies ist ein vorübergehender Status, aber ein primäres Replikat kann in diesem Status hangen bleiben, wenn keine Arbeitsthreads zum Verarbeiten der Anforderungen verfügbar sind.
ONLINE Die Verfügbarkeitsgruppenressource ist online, und alle Datenbankarbeitsthreads wurden abgerufen.
FAILED Das Verfügbarkeitsreplikat kann nicht aus dem WSFC-Cluster lesen oder in den WSFC-Cluster schreiben.

SEKUNDÄREN: Wenn ein Verfügbarkeitsreplikat die SEKUNDÄRE Rolle ausführt, handelt es sich derzeit um ein sekundäres Replikat. Die möglichen Betriebszustände sind wie in der folgenden Tabelle dargestellt.

Betriebsstatus BESCHREIBUNG
ONLINE Das lokale sekundäre Replikat ist mit dem primären Replikat verbunden.
FAILED Das lokale sekundäre Replikat kann nicht aus dem WSFC-Cluster lesen oder in den WSFC-Cluster schreiben.
NULL Auf einem primären Replikat wird dieser Wert zurückgegeben, wenn sich die Zeile auf ein sekundäres Replikat bezieht.

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.

Berechtigungen für SQL Server 2022 und höher

Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.

Siehe auch

Übersicht über Always On-Verfügbarkeitsgruppen (SQL Server)
Überwachen von Verfügbarkeitsgruppen (Transact-SQL)