sys.sp_dbmmonitorresults (Transact-SQL)

Gäller för:SQL Server

Returnerar statusrader för en övervakad databas från statustabellen där databasspegelövervakningshistoriken lagras, och låter dig välja om proceduren får den senaste statusen i förväg.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

[ @database_name = ] N'database_name'

Specificerar databasen för vilken spegelstatusen ska returneras. @database_name är sysname, utan standard.

[ @mode = ] läge

Specificerar antalet rader som returneras. @mode är int, och kan vara ett av dessa värden.

Value Beskrivning
0 Sista raden
1 Raderna varar i två timmar
2 Rodd varar i fyra timmar
3 Raderna varar i åtta timmar
4 Rows sista dagen
5 Gräl varar i två dagar
6 Sista 100 varven
7 Sista 500 varven
8 Sista 1 000 raderna
9 Sista 1 000 000 raderna

[ @update_table = ] update_table

Specificerar att innan man returnerar resultatet av proceduren. @update_table är int, med standardvärdet .0

  • 0 = Uppdaterar inte statusen för databasen. Resultaten beräknas med endast de två sista raderna, vars ålder beror på när statustabellen uppdaterades.

  • 1 = Uppdaterar statusen för databasen genom att anropa sp_dbmmonitorupdate innan resultaten beräknas. Men om statustabellen uppdaterades inom de föregående 15 sekunderna, eller om användaren inte är medlem i sysadmin-fixserverrollen , sp_dbmmonitorresults körs den utan att statusen uppdateras.

Returnera kodvärden

None.

Resultatuppsättning

Returnerar det begärda antalet rader med historikstatus för den angivna databasen. Varje rad innehåller följande information:

Kolumnnamn Datatyp Description
database_name sysname Namnet på en speglad databas.
role int Nuvarande speglingsroll för serverinstansen:

1 = Rektor
2 = Spegel
mirroring_state int Databasens status:

0 = Pausad
1 = Frånkopplad
2 = Synkronisering
3 = Väntande failover
4 = Synkroniserad
witness_status int Vittnets anslutningsstatus i databasens speglingssession kan vara:

0 = Okänt
1 = Ansluten
2 = Frånkopplad
log_generation_rate int Mängden logg som genererats sedan föregående uppdatering av spegelstatusen för denna databas i kilobyte/sekund.
unsent_log int Storleken på den ej skickade loggen i sändningskön på principalen i kilobyte.
send_rate int Skicka logghastigheten från principalen till spegeln i kilobyte/sekund.
unrestored_log int Storleken på redo-kön på spegeln i kilobyte.
recovery_rate int Omarbetningshastighet på spegeln i kilobyte/sekund.
transaction_delay int Total fördröjning för alla transaktioner inom millisekunder.
transactions_per_sec int Antal transaktioner som sker per sekund på huvudserverinstansen.
average_delay int Genomsnittlig fördröjning på huvudserverinstansen för varje transaktion på grund av databasspegling. I högpresterande läge (det vill säga när egenskapen SAFETY sätts till OFF), är detta värde generellt .0
time_recorded datetime Tidpunkt då databasens speglingsmonitor registrerade raden. Detta värde är systemets klocktid för huvudpersonen.
time_behind datetime Ungefärlig systemklocktid för det princip som spegeldatabasen för närvarande är ikapp. Detta värde är meningsfullt endast på huvudserverinstansen.
local_time datetime Systemklocktid på den lokala serverinstansen när denna rad uppdaterades.

Remarks

sp_dbmmonitorresults kan endast köras i databasens msdb kontext.

Permissions

Kräver medlemskap i sysadmin-rollen som fast server eller i den dbm_monitor fasta databasrollen i databasen msdb . Den dbm_monitor rollen gör det möjligt för medlemmarna att se databasspeglingsstatus, men inte uppdatera den och inte visa eller konfigurera databasspeglingshändelser.

Note

Första gången det sp_dbmmonitorupdate körs skapar det den dbm_monitor fasta databasrollen i databasen msdb . Medlemmar i sysadmin-fasta serverrollen kan lägga till vilken användare som helst till dbm_monitor fasta databasrollen.

Examples

Följande exempel returnerar raderna som registrerats under de föregående två timmarna utan att uppdatera databasens status.

USE msdb;

EXECUTE sp_dbmmonitorresults AdventureWorks2022, 2, 0;