sys.dm_database_replica_states (Azure SQL-Datenbank)
Gilt für: Azure SQL-Datenbank Azure SQL verwaltete Instanz
Gibt Statusinformationen für jede Datenbank zurück, die an primären und sekundären Replikaten teilnimmt. Gibt in einem sekundären Replikat eine Zeile für jede sekundäre Datenbank in der Instanz zurück. Gibt im primären Replikat eine Zeile für die primäre Datenbank und eine zusätzliche Zeile für jede sekundäre Datenbank zurück.
Wichtig
Abhängig von der Aktion und den Statuswerten auf höherer Ebene sind Datenbankstatusinformationen möglicherweise nicht verfügbar oder veraltet. Zudem sind die Werte nur lokal relevant.
Spaltenname | Datentyp | Beschreibung (auf primärem Replikat) |
---|---|---|
database_id | int | Bezeichner der Datenbank. In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines elastischen Pools eindeutig, aber nicht innerhalb eines logischen Servers. |
group_id | uniqueidentifier | Der Bezeichner der Verfügbarkeitsgruppe, zu der die Datenbank gehört. |
replica_id | uniqueidentifier | Der Bezeichner des Verfügbarkeitsreplikats in der Verfügbarkeitsgruppe. |
group_database_id | uniqueidentifier | Der Bezeichner der Datenbank in der Verfügbarkeitsgruppe. Dieser Bezeichner ist auf jedem Replikat, mit dem diese Datenbank verknüpft ist, identisch. |
is_local | bit | Gibt an, ob die Verfügbarkeitsdatenbank lokal ist. Folgende Werte sind möglich: 0 = Die Datenbank ist nicht lokal in der SQL Server-Instanz. 1 = Die Datenbank ist für die Serverinstanz lokal. |
is_primary_replica | bit | Gibt 1 zurück, wenn das Replikat primär oder 0 ist, wenn es sich um ein sekundäres Replikat in der Verfügbarkeitsgruppe handelt, zu der die Datenbank gehört. Dies bezieht sich nicht auf die primäre oder sekundäre Datenbank in einer verteilten Verfügbarkeitsgruppe oder auf eine aktive Georeplikationsbeziehung. Gilt für: SQL Server 2014 (12.x) und höhere Versionen. |
synchronization_state | tinyint | Datenbewegungszustand, einer der folgenden Werte. 0 = Nicht synchronisiert. Gibt für eine primäre Datenbank an, dass die Datenbank nicht bereit ist, das Transaktionsprotokoll mit den entsprechenden sekundären Datenbanken zu synchronisieren. Gibt für eine sekundäre Datenbank an, dass die Protokollsynchronisierung aufgrund eines Verbindungsproblems nicht gestartet wurde, angehalten wird oder während des Starts oder eines Rollenwechsels Übergangszustände durchläuft. 1 = Synchronisierung. Gibt bei einer primären Datenbank an, dass diese Datenbank bereit ist, eine Scananforderung von einer sekundären Datenbank zu akzeptieren. Gibt bei einer sekundären Datenbank an, dass eine aktive Datenverschiebung für die Datenbank erfolgt. 2 = Synchronisiert. Primäre Datenbanken werden mit dem Status SYNCHRONISIERT und nicht mit dem Status WIRD SYNCHRONISIERT angezeigt. Eine sekundäre Datenbank mit synchronem Commit wird als SYNCHRONISIERT angezeigt, wenn gemäß dem lokalen Cache die Datenbank für das Failover bereit ist und eine Synchronisierung erfolgt. 3 = Wiederherstellen. Gibt die Rollbackphase an, wenn eine sekundäre Datenbank aktiv Seiten von der primären Datenbank abruft. Wichtig: Wenn sich eine Datenbank für ein sekundäres Replikat im REVERTING-Zustand befindet, lässt das Erzwingen eines Failovers mit dem sekundären Replikat die Datenbank in einem Zustand zurück, in dem sie nicht als primäre Datenbank gestartet werden kann. Entweder muss die Datenbank erneut als sekundäre Datenbank verbunden werden, oder Sie müssen neue Protokolldatensätze aus einer Protokollsicherung anwenden. 4 = Initialisierung. Gibt die Rollbackphase an, wenn das Transaktionsprotokoll (erforderlich, um eine sekundäre Datenbank auf den gleichen Stand wie die Rückgängig-LSN zu bringen) übermittelt und auf einem sekundären Replikat festgeschrieben wird. Wichtig: Wenn sich eine Datenbank für ein sekundäres Replikat im INITIALISIERUNGszustand befindet, lässt das Erzwingen eines Failovers auf das sekundäre Replikat die Datenbank in einem Zustand zurück, in dem sie nicht als primäre Datenbank gestartet werden kann. Entweder muss die Datenbank erneut als sekundäre Datenbank verbunden werden, oder Sie müssen neue Protokolldatensätze aus einer Protokollsicherung anwenden. |
synchronization_state_desc | nvarchar(60) | Beschreibung des Datenverschiebungsstatus. Folgende Werte sind möglich: - NICHT SYNCHRONISIERT -SYNCHRONISIEREND -SYNCHRONISIERTE -ZURÜCKKEHREND -INITIALISIEREND |
is_commit_participant | bit | 0 = Transaktions-Commit wird in Bezug auf diese Datenbank nicht synchronisiert. 1 = Ein Transaktionscommit wird in Bezug auf diese Datenbank synchronisiert. Für eine Datenbank mit einem Verfügbarkeitsreplikat für asynchrone Commits muss dieser Wert immer 0 sein. Bei einer Datenbank mit einem Verfügbarkeitsreplikat für synchrone Commits ist dieser Wert nur für die primäre Datenbank genau. |
synchronization_health | tinyint | Gibt den Schnittpunkt des Synchronisierungsstatus einer Datenbank an, die der Verfügbarkeitsgruppe im Verfügbarkeitsreplikat und dem Verfügbarkeitsmodus des Verfügbarkeitsreplikats (synchroner Commit- oder asynchroner Commit-Modus) beigetreten ist, eines der folgenden Werte. 0 = Nicht gesund. Die synchronization_state Datenbank ist 0 (NICHT SYNCHRONISIEREN).1 = Teilweise gesund. Eine Datenbank für ein Synchron-Commit-Verfügbarkeitsreplikat gilt als teilweise fehlerfrei, wenn synchronization_state 1 (SYNCHRONIZING) ist.2 = Gesund. Eine Datenbank für ein Synchron-Commit-Verfügbarkeitsreplikat gilt als fehlerfrei, wenn synchronization_state 2 (SYNCHRONIZED) ist, und eine Datenbank für ein asynchrones Commit-Verfügbarkeitsreplikat wird als fehlerfrei betrachtet, wenn synchronization_state 1 (SYNCHRONIZING) ist. |
synchronization_health_desc | nvarchar(60) | Beschreibung der synchronization_health Verfügbarkeitsdatenbank.- NOT_HEALTHY - PARTIALLY_HEALTHY -GESUND |
database_state | tinyint | 0 = Online 1 = Wird wiederhergestellt 2 = Wird wiederhergestellt 3 = Wiederherstellung steht aus 4 = Fehlerverdächtig 5 = Notfall 6 = Offline Hinweis: Identisch mit der state Spalte in sys.databases . |
database_state_desc | nvarchar(60) | Beschreibung des database_state Verfügbarkeitsreplikats.-ONLINE -UMLAGERND -GENESEND - RECOVERY_PENDING -VERDÄCHTIGTER -NOTFALL -OFFLINE Hinweis: Identisch mit der state_desc Spalte in sys.databases . |
is_suspended | bit | Der Status der Datenbank. Folgende Werte sind möglich: 0 = Fortgesetzt 1 = Angehalten |
suspend_reason | tinyint | Gibt den Grund für das Anhalten an, wenn die Datenbank angehalten wurde. Folgende Werte sind möglich: 0 = Benutzeraktion 1 = Aussetzen für: Partner 2 = Wiederholen 3 = Erfassen 4 = Übernehmen 5 = Neu starten 6 = Rückgängig 7 = Erneute Überprüfung 8 = Fehler bei der Berechnung des Synchronisierungspunkts des sekundären Replikats |
suspend_reason_desc | nvarchar(60) | Beschreibung des Grunds für das Anhalten der Datenbank. Folgende Werte sind möglich: SUSPEND_FROM_USER = Die Datenverschiebung wurde von einem Benutzer manuell angehalten. SUSPEND_FROM_PARTNER = Das Datenbankreplikat wurde nach einem erzwungenen Failover angehalten. SUSPEND_FROM_REDO = Während der Rollforwardphase ist ein Fehler aufgetreten. SUSPEND_FROM_APPLY = Beim Schreiben des Protokolls in die Datei ist ein Fehler aufgetreten (siehe Fehlerprotokoll). SUSPEND_FROM_CAPTURE = Beim Aufzeichnen des Protokolls auf dem primären Replikat ist ein Fehler aufgetreten. SUSPEND_FROM_RESTART = Das Datenbankreplikat wurde vor dem Neustart der Datenbank angehalten (siehe Fehlerprotokoll). SUSPEND_FROM_UNDO = Während der Rollbackphase ist ein Fehler aufgetreten (siehe Fehlerprotokoll). SUSPEND_FROM_REVALIDATION = Beim Wiederherstellen der Verbindung wurde ein Konflikt zwischen Protokolländerungen erkannt (siehe Fehlerprotokoll). SUSPEND_FROM_XRF_UPDATE = Der allgemeine Protokollpunkt wurde nicht gefunden (siehe Fehlerprotokoll). |
recovery_lsn | numeric(25,0) | Beim primären Replikat das Ende des Transaktionsprotokolls, bevor die primäre Datenbank nach einer Wiederherstellung oder einem Failover neue Protokolldatensätze schreibt. Wenn dieser Wert für eine bestimmte sekundäre Datenbank kleiner als der aktuelle gehärtete LSN (last_hardened_lsn ) ist, recovery_lsn ist der Wert, mit dem diese sekundäre Datenbank neu synchronisiert werden muss (d. h. zum Zurücksetzen und Erneutitialisieren auf). Wenn dieser Wert größer oder gleich dem aktuellen gehärteten LSN ist, wäre eine erneute Synchronisierung unnötig und würde nicht auftreten.recovery_lsn gibt eine Protokollblock-ID an, die mit Nullen aufgefüllt ist. Es handelt sich nicht um eine tatsächliche Protokollsequenznummer (LSN). |
truncation_lsn | numeric(25,0) | Gibt für das primäre Replikat der primären Datenbank den Mindestwert für die Protokollkürzungs-LSN aller entsprechenden sekundären Datenbanken an. Wenn die lokale Protokollkürzung blockiert wird (z. B. durch einen Sicherungsvorgang), kann diese LSN größer als die lokale Kürzungs-LSN sein. Stellt bei einer bestimmten sekundären Datenbank den Protokollkürzungspunkt dieser Datenbank dar. truncation_lsn gibt eine Protokollblock-ID wieder, die mit Nullen aufgefüllt ist. Es handelt sich nicht um eine tatsächliche Protokollsequenznummer. |
last_sent_lsn | numeric(25,0) | Der Protokollblockbezeichner, der den Punkt angibt, bis zu den alle Protokollblöcke von der primären Datenbank gesendet wurden. Dies ist die ID des nächsten Protokollblocks, der gesendet wird, und nicht die ID des zuletzt gesendeten Protokollblocks.last_sent_lsn gibt eine Protokollblock-ID an, die mit Nullen aufgefüllt ist. Es handelt sich nicht um eine tatsächliche Protokollsequenznummer. |
last_sent_time | datetime | Die Zeit, zu der der letzte Protokollblock gesendet wurde. |
last_received_lsn | numeric(25,0) | Die Protokollblock-ID, die den Punkt angibt, bis zu dem alle Protokollblöcke vom sekundären Replikat empfangen wurden, das diese sekundäre Datenbank hostet.last_received_lsn gibt eine Protokollblock-ID an, die mit Nullen aufgefüllt ist. Es handelt sich nicht um eine tatsächliche Protokollsequenznummer. |
last_received_time | datetime | Die Zeit, zu der die in der letzten Meldung empfangene Protokollblock-ID auf dem sekundären Replikat gelesen wurde. |
last_hardened_lsn | numeric(25,0) | Start des Protokollblocks, der die Protokolldatensätze der letzten festgeschriebenen LSN für eine sekundären Datenbank enthält. Für eine primäre Datenbank mit asynchronem Commit oder synchronem Commit, deren aktuelle Richtlinie "Verzögerung" ist, lautet der Wert NULL. Gibt bei anderen synchronen Commit-Primärdatenbanken last_hardened_lsn das Minimum des gehärteten LSN für alle sekundären Datenbanken an.Hinweis: last_hardened_lsn Gibt eine Protokollblock-ID an, die mit Nullen aufgefüllt ist. Es handelt sich nicht um eine tatsächliche Protokollsequenznummer. |
last_hardened_time | datetime | In einer sekundären Datenbank, Zeit des Protokollblockbezeichners für den letzten gehärteten LSN (last_hardened_lsn ). Gibt für eine primäre Datenbank die Zeit an, die der festgeschriebenen LSN mit dem Mindestwert entspricht. |
last_redone_lsn | numeric(25,0) | Tatsächliche Protokollfolgenummer des letzten Protokolldatensatzes, der zuletzt für die sekundäre Datenbank wiederholt wurde. last_redone_lsn ist immer kleiner als last_hardened_lsn . |
last_redone_time | datetime | Die Zeit, zu der der letzte Protokolldatensatz in der sekundären Datenbank wiederholt wurde. |
log_send_queue_size | bigint | Die Menge der Protokolldatensätze der primären Datenbank, die nicht an die sekundären Datenbanken gesendet wurde, in Kilobyte (KB). |
log_send_rate | bigint | Durchschnittliche Rate, mit der primäre Replikatinstanz Daten während des letzten aktiven Zeitraums in Kilobyte (KB)/Sekunde gesendet hat. |
redo_queue_size | bigint | Die Menge an Protokolldatensätzen in den Protokolldateien des sekundären Replikats, die noch nicht neu erstellt wurde, in Kilobyte (KB). |
redo_rate | bigint | Durchschnittliche Rate, mit der die Protokolldatensätze in einer bestimmten sekundären Datenbank in Kilobyte (KB)/Sekunde neu berechnet werden.redo_rate wird berechnet, indem die Gesamtzahl der Protokollbytes geteilt wird, seit der Start des Datenbankmoduls durch den Zeitraum, in dem die Wiederholung aktiv ausgeführt wurde, statt durch die verstrichene Zeit. Da "Wiederholen" möglicherweise nicht kontinuierlich ausgeführt wird, kann der resultierende Wert (höher) als der Wert des Leistungsindikators Database Replica:Redone Bytes/sec sein. |
filestream_send_rate | bigint | Die Rate in KB/Sekunde, mit der die FILESTREAM-Dateien an das sekundäre Replikat übertragen werden. |
end_of_log_lsn | numeric(25,0) | Lokale Protokollende-LSN. Die tatsächliche LSN, die dem letzten Protokolldatensatz im Protokollcache der primären und sekundären Datenbanken entspricht. Für das primäre Replikat geben die sekundären Zeilen die Protokollende-LSN der letzten Statusmeldungen an, die die sekundären Replikate an das primäre Replikat gesendet haben.end_of_log_lsn gibt eine Protokollblock-ID an, die mit Nullen aufgefüllt ist. Es handelt sich nicht um eine tatsächliche Protokollsequenznummer. |
last_commit_lsn | numeric(25,0) | Tatsächliche Protokollfolgenummer, die dem letzten Commitdatensatz im Transaktionsprotokoll entspricht. Entspricht bei der primären Datenbank dem zuletzt verarbeiteten Commitdatensatz. In den Zeilen für sekundäre Datenbanken wird die Protokollfolgenummer angezeigt, die das sekundäre Replikat dem primären Replikat gesendet hat. Beim sekundären Replikat ist dies der letzte Commitdatensatz, der wiederholt wurde. |
last_commit_time | datetime | Die Zeit, die dem letzten Commitdatensatz entspricht. Bei der sekundären Datenbank ist diese Zeit mit der für die primäre Datenbank identisch. Auf dem primären Replikat zeigt jede Zeile für die sekundäre Datenbank die Zeit an, die das sekundäre Replikat, das die sekundäre Datenbank hostet, dem primären Replikat zurückgemeldet hat. Der Zeitunterschied zwischen der Primären Datenbankzeile und einer bestimmten sekundären Datenbankzeile stellt ungefähr das Ziel des Wiederherstellungspunkts (RPO) dar, wobei davon ausgegangen wird, dass der Redo-Prozess abgefangen wird und dass der Fortschritt vom sekundären Replikat an das primäre Replikat zurückgemeldet wurde. |
low_water_mark_for_ghosts | bigint | Eine monoton steigende Zahl für die Datenbank, die eine Untergrenze angibt, die für das Cleanup inaktiver Datensätze verwendet wurde. Wenn diese Zahl im Laufe der Zeit nicht steigt, bedeutet dies, dass die Gespenstbereinigung möglicherweise nicht passiert. Um zu entscheiden, welche Zeilen mit inaktiven Datensätzen bereinigt werden sollen, verwendet das primäre Replikat den Mindestwert dieser Spalte für alle Verfügbarkeitsreplikate (einschließlich des primären Replikats) für diese Datenbank. |
secondary_lag_seconds | bigint | Die Anzahl der Sekunden, die das sekundäre Replikat während der Synchronisierung hinter dem primären Replikat liegt. Gilt für: SQL Server 2016 (13.x) und höhere Versionen. |
quorum_commit_lsn | numeric(25,0) | Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht garantiert. |
quorum_commit_time | datetime | Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht garantiert. |
Berechtigungen
Erfordert die VIEW DATABASE STATE-Berechtigung für die Datenbank.