Freigeben über


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 abzurufen, fragen Sie sys.dm_hadr_availability_replica_states die Serverinstanz ab, die das primäre Replikat hosten soll. Wenn Sie diese dynamische Verwaltungsansicht auf einer Serverinstanz abfragen, die ein sekundäres Replikat einer Verfügbarkeitsgruppe hosten, werden nur lokale Informationen für die Verfügbarkeitsgruppe zurückgegeben.

Spaltenname Datentyp Nullwerte zulässig Beschreibung
replica_id uniqueidentifier Nein Eindeutiger Bezeichner des Replikats.
group_id uniqueidentifier Nein Eindeutiger Bezeichner der Verfügbarkeitsgruppe.
is_local bit Nein Gibt an, ob das Replikat lokal ist, einer von:

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 Yes Aktuelle AlwaysOn-Verfügbarkeitsgruppenrolle eines lokalen Replikats oder eines verbundenen Remotereplikats, einer von:

0 = Auflösen
1 = Primär
2 = Sekundär

Informationen zu AlwaysOn-Verfügbarkeitsgruppenrollen finden Sie unter Was ist eine AlwaysOn-Verfügbarkeitsgruppe?
role_desc nvarchar(60) Yes Beschreibung von role, eine von:

RESOLVING
PRIMARY
SECONDARY
operational_state tinyint Yes Aktueller Betriebszustand des Replikats, einer von:

0 = Ausstehendes Failover
1 = Ausstehend
2 = Online
3 = Offline
4 = Fehlgeschlagen
5 = Fehlgeschlagen, kein Quorum
NULL = Replikat ist nicht lokal.

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

PENDING_FAILOVER

PENDING

ONLINE

OFFLINE

FAILED

FAILED_NO_QUORUM

NULL
connected_state tinyint Yes Gibt an, ob ein sekundäres Replikat derzeit 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 DISCONNECTED Zustand hängt von seiner Rolle ab: Wenn ein sekundäres Replikat getrennt ist, werden die sekundären Datenbanken als NOT SYNCHRONIZED primäres Replikat markiert, das auf die erneute Verbindung wartet; Bei 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) Yes Beschreibung von connection_state, eine von:

DISCONNECTED
CONNECTED
recovery_health tinyint Yes Rollup der database_state Spalte der sys.dm_hadr_database_replica_states dynamischen Verwaltungsansicht. Die folgende Auflistung enthält die möglichen Werte und deren Beschreibung.

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 verfügen über einen Datenbankstatus von ONLINE (database_state ist 0).

NULL: is_local = 0
recovery_health_desc nvarchar(60) Yes Beschreibung von recovery_health, eine von:

ONLINE_IN_PROGRESS
ONLINE
NULL
synchronization_health tinyint Yes Gibt einen Rollup des Datenbanksynchronisierungsstatus (synchronization_state) aller verknüpften Verfügbarkeitsdatenbanken (auch als Replikate bezeichnet) und den Verfügbarkeitsmodus des Replikats (synchrones Commit oder asynchronen Commit-Modus) wieder. Das Rollup spiegelt den am wenigsten fehlerfreien akkumulierten Zustand der Datenbanken im Replikat wider. Nachfolgend sind die möglichen Werte und deren Beschreibungen aufgeführt.

0 = Nicht fehlerfrei. Mindestens eine verknüpfte Datenbank befindet sich im NOT SYNCHRONIZING Zustand.

1 = Teilweise gesund. Einige Replikate befinden sich nicht im Zielsynchronisierungsstatus: Synchrone Commit-Replikate sollten synchronisiert werden, und asynchrone Commit-Replikate sollten synchronisiert werden.

2 = Gesund. Alle Replikate befinden sich im Zielsynchronisierungsstatus: Replikate mit synchronem Commit sind synchronisiert, und Replikate mit asynchronem Commit werden synchronisiert.
synchronization_health_desc nvarchar(60) Yes Beschreibung von synchronization_health, eine von:

NOT_HEALTHY
PARTIALLY_HEALTHY
HEALTHY
last_connect_error_number int Yes Die Nummer des letzten Verbindungsfehlers.
last_connect_error_description nvarchar(1024) Yes Text der last_connect_error_number Nachricht.
last_connect_error_timestamp datetime Yes Datums- und Uhrzeitzeitstempel, der angibt, wann der last_connect_error_number Fehler aufgetreten ist.
write_lease_remaining_ticks bigint Yes Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
current_configuration_commit_start_time_utc datetime Yes Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
is_internal bit Yes Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
operational_state_desc nvarchar(60) Yes Beschreibung von operational_state, eine von:

PENDING_FAILOVER
PENDING
ONLINE
OFFLINE
FAILED
FAILED_NO_QUORUM
NULL
recovery_health tinyint Yes Rollup der database_state Spalte der sys.dm_hadr_database_replica_states dynamischen Verwaltungsansicht. Die folgende Auflistung enthält die möglichen Werte und deren Beschreibung.

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 verfügen über einen Datenbankstatus von ONLINE (database_state ist 0).

NULL: is_local ist nicht 0
synchronization_health tinyint Nein Gibt einen Rollup des Datenbanksynchronisierungsstatus (synchronization_state) aller verknüpften Verfügbarkeitsdatenbanken (auch als Replikate bezeichnet) und den Verfügbarkeitsmodus des Replikats (synchrones Commit oder asynchronen Commit-Modus) wieder. Das Rollup spiegelt den am wenigsten fehlerfreien akkumulierten Zustand der Datenbanken im Replikat wider. Mögliche Werte und beschreibungen sind:

0 = Nicht fehlerfrei. Mindestens eine verknüpfte Datenbank befindet sich im NOT SYNCHRONIZING Zustand.

1 = Teilweise gesund. Einige Replikate befinden sich nicht im Zielsynchronisierungsstatus: Synchrone Commit-Replikate sollten synchronisiert werden, und asynchrone Commit-Replikate sollten synchronisiert werden.

2 = Gesund. Alle Replikate befinden sich im Zielsynchronisierungsstatus: Replikate mit synchronem Commit sind synchronisiert, und Replikate mit asynchronem Commit werden synchronisiert.

Rollen und Betriebszustände

Die Rolle , rolespiegelt den Zustand eines bestimmten Verfügbarkeitsreplikats wider. Der Betriebszustand beschreibt, operational_stateob das Replikat bereit ist, Clientanforderungen für alle Datenbanken des Verfügbarkeitsreplikats zu verarbeiten. In der folgenden Tabelle sind die betriebstechnischen Zustände zusammengefasst, die für jede Rolle möglich sind: RESOLVING, , PRIMARYund SECONDARY.

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

Betriebszustand Beschreibung
PENDING_FAILOVER Das System verarbeitet einen Failoverbefehl für die Verfügbarkeitsgruppe.
OFFLINE Alle Konfigurationsdaten für das Verfügbarkeitsreplikat werden im WSFC-Cluster und auch in lokalen Metadaten aktualisiert, aber die Verfügbarkeitsgruppe verfügt derzeit über kein primäres Replikat.
FAILED Beim Versuch, Informationen aus dem WSFC-Cluster abzurufen, ist ein Lesefehler aufgetreten.
FAILED_NO_QUORUM Der lokale WSFC-Knoten hat kein Quorum. Dieser Zustand wird abgeleitet.

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

Betriebszustand Beschreibung
PENDING Dieser Zustand ist vorübergehend, aber ein primäres Replikat kann in diesem Zustand hängen bleiben, wenn Mitarbeiter nicht für die Verarbeitung von 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 gelesen oder geschrieben werden.

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

Betriebszustand 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 gelesen oder geschrieben werden.
NULL Auf einem primären Replikat wird dieser Wert zurückgegeben, wenn sich die Zeile auf ein sekundäres Replikat bezieht.

Berechtigungen

SQL Server 2019 (15.x) und frühere Versionen erfordern VIEW SERVER STATE berechtigungen auf dem Server.

SQL Server 2022 (16.x) und höhere Versionen erfordern VIEW SERVER PERFORMANCE STATE berechtigungen auf dem Server.