Freigeben über


sp_dbmmonitorresults (Transact-SQL)

Gilt für: SQL Server

Gibt Statuszeilen für eine überwachte Datenbank aus der Statustabelle zurück, in der der Verlauf der Datenbankspiegelungsüberwachung gespeichert ist, und sie können auswählen, ob die Prozedur vorher den neuesten Status abruft.

Transact-SQL-Syntaxkonventionen

Syntax

sp_dbmmonitorresults
    [ @database_name = ] N'database_name'
    [ , [ @mode = ] mode ]
    [ , [ @update_table = ] update_table ]
[ ; ]

Argumente

[ @database_name = ] N'database_name'

Gibt die Datenbank an, für die der Spiegelungsstatus zurückgegeben werden soll. @database_name ist "sysname" ohne Standard.

[ @mode = ] Modus

Gibt die Anzahl der zurückgegebenen Zeilen an. @mode ist int und kann einer dieser Werte sein.

Wert Beschreibung
0 Letzte Zeile
1 Zeilen dauern zwei Stunden
2 Zeilen dauern vier Stunden
3 Zeilen dauern acht Stunden
4 Zeilen am letzten Tag
5 Zeilen letzten zwei Tage
6 Letzte 100 Zeilen
7 Letzte 500 Zeilen
8 Letzte 1.000 Zeilen
9 Letzte 1.000.000 Zeilen

[ @update_table = ] update_table

Gibt an, dass vor dem Zurückgeben der Ergebnisse die Prozedur. @update_table ist int mit einem Standardwert von 0.

  • 0 = Aktualisiert den Status für die Datenbank nicht. Die Ergebnisse werden nur aus den letzten beiden Zeilen berechnet, deren Alter vom Aktualisierungszeitpunkt der Statustabelle abhängt.

  • 1 = Aktualisiert den Status für die Datenbank, indem vor dem Berechnen der Ergebnisse aufgerufen sp_dbmmonitorupdate wird. Wenn die Statustabelle jedoch innerhalb der vorherigen 15 Sekunden aktualisiert wurde oder der Benutzer kein Mitglied der festen Serverrolle "sysadmin " ist, wird ausgeführt, sp_dbmmonitorresults ohne den Status zu aktualisieren.

Rückgabecodewerte

Keine.

Resultset

Gibt die angeforderte Anzahl von Zeilen aus dem Statusverlauf für die angegebene Datenbank zurück. Jede Zeile enthält die folgenden Informationen:

Spaltenname Datentyp Beschreibung
database_name sysname Name einer gespiegelten Datenbank.
role int Aktuelle Spiegelungsrolle der Serverinstanz:

1 = Prinzipal
2 = Spiegelung
mirroring_state int Status der Datenbank:

0 = Angehalten
1 = Getrennt
2 = Synchronisieren
3 = Ausstehendes Failover
4 = Synchronisiert
witness_status int Verbindungsstatus des Zeugen in der Datenbank-Spiegelungssitzung der Datenbank:

0 = Unbekannt
1 = Verbunden
2 = Getrennt
log_generation_rate int Umfang des seit dem vorhergehenden Update des Spiegelungsstatus dieser Datenbank generierten Protokolls in KB/s.
unsent_log int Größe des nicht gesendeten Protokolls in der Sendewarteschlange auf dem Prinzipal in KB.
send_rate int Senderate des Protokolls vom Prinzipal zum Spiegel in KB/s.
unrestored_log int Größe der Wiederholungswarteschlange auf dem Spiegel in KB.
recovery_rate int Wiederholungsrate auf dem Spiegel in KB/s.
transaction_delay int Gesamtverzögerung für alle Transaktionen in Millisekunden.
transactions_per_sec int Anzahl der Transaktionen, die pro Sekunde in der Prinzipalserverinstanz auftreten.
average_delay int Durchschnittliche Verzögerung in der Prinzipalserverinstanz für jede Transaktion aufgrund der Datenbankspiegelung. Im Hochleistungsmodus (d. h., wenn die SAFETY Eigenschaft auf OFF"Festgelegt" ist ), ist dieser Wert im Allgemeinen 0.
time_recorded datetime Uhrzeit, zu der der Datenbankspiegelungsmonitor die Zeile aufgezeichnet hat. Dieser Wert ist die Systemuhrzeit des Prinzipals.
time_behind datetime Ungefähre Systemuhrzeit des Prinzipals, auf deren Stand die Spiegelungsdatenbank derzeit gebracht wird. Der Wert ist nur in der Prinzipalserverinstanz sinnvoll.
local_time datetime Systemuhrzeit in der lokalen Serverinstanz, zu der diese Zeile aktualisiert wurde.

Hinweise

sp_dbmmonitorresults kann nur im Kontext der msdb Datenbank ausgeführt werden.

Berechtigungen

Erfordert die Mitgliedschaft in der festen Serverrolle "sysadmin " oder in der dbm_monitor festen Datenbankrolle in der msdb Datenbank. Die rolle dbm_monitor ermöglicht es seinen Mitgliedern, den Status der Datenbankspiegelung anzuzeigen, aber nicht zu aktualisieren, aber keine Datenbankspiegelungsereignisse anzuzeigen oder zu konfigurieren.

Hinweis

Beim sp_dbmmonitorupdate ersten Ausführen wird die dbm_monitor feste Datenbankrolle in der msdb Datenbank erstellt. Mitglieder der festen Serverrolle "sysadmin " können jeder Benutzer zur dbm_monitor festen Datenbankrolle hinzufügen.

Beispiele

Im folgenden Beispiel werden die Zeilen, die in den letzten 2 Stunden aufgezeichnet wurden, zurückgegeben, ohne dass der Status der Datenbank aktualisiert wird.

USE msdb;
EXEC sp_dbmmonitorresults AdventureWorks2022, 2, 0;