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 aufgerufensp_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 = Prinzipal2 = Spiegelung |
mirroring_state |
int | Status der Datenbank:0 = Angehalten1 = Getrennt2 = Synchronisieren3 = Ausstehendes Failover4 = Synchronisiert |
witness_status |
int | Verbindungsstatus des Zeugen in der Datenbank-Spiegelungssitzung der Datenbank:0 = Unbekannt1 = Verbunden2 = 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;