Dela via


sys.dm_database_replica_states (Azure SQL Database)

gäller för:Azure SQL DatabaseAzure SQL Managed Instance

Returnerar tillståndsinformation för varje databas som deltar i primära och sekundära repliker. På en sekundär replik returnerar en rad för varje sekundär databas på instansen. På den primära repliken returnerar en rad för den primära databasen och ytterligare en rad för varje sekundär databas.

Viktig

Beroende på åtgärden och tillstånd på högre nivå kan databastillståndsinformation vara otillgänglig eller inaktuell. Dessutom har värdena endast lokal relevans.

Kolumnnamn Datatyp Beskrivning (på primär replik)
database_id int Identifierare för databasen.

I Azure SQL Database är värdena unika i en enskild databas eller en elastisk pool, men inte inom en logisk server.
group_id unikidentifierare Identifierare för tillgänglighetsgruppen som databasen tillhör.
replica_id unikidentifierare Identifierare för tillgänglighetsrepliken i tillgänglighetsgruppen.
group_database_id unikidentifierare Identifierare för databasen i tillgänglighetsgruppen. Den här identifieraren är identisk på varje replik som databasen är ansluten till.
is_local bit Om tillgänglighetsdatabasen är lokal, något av följande:

0 = Databasen är inte lokal för SQL Server-instansen.

1 = Databasen är lokal för serverinstansen.
is_primary_replica bit Returnerar 1 om repliken är primär, eller 0 om det är en sekundär replik i tillgänglighetsgruppen som databasen tillhör. Detta refererar inte till den primära eller sekundära databasen i en distribuerad tillgänglighetsgrupp eller en aktiv geo-replikeringsrelation.

gäller för: SQL Server 2014 (12.x) och senare versioner.
synchronization_state pytteliten Dataförflyttningstillstånd, ett av följande värden.

0 = Synkroniserar inte. För en primär databas anger att databasen inte är redo att synkronisera sin transaktionslogg med motsvarande sekundära databaser. För en sekundär databas anger att databasen inte har startat loggsynkronisering på grund av ett anslutningsproblem, pausas eller genomgår övergångstillstånd under start eller en rollväxling.

1 = Synkronisera. För en primär databas anger att databasen är redo att acceptera en genomsökningsbegäran från en sekundär databas. För en sekundär databas anger att aktiv dataflytt sker för databasen.

2 = Synkroniserad. En primär databas visar SYNKRONISERAD i stället för SYNKRONISERING. En synkron-commit sekundär databas visar synkroniserad när den lokala cachen säger att databasen är redundansklar och synkroniseras.

3 = Återgå. Anger fasen i ångra-processen när en sekundär databas aktivt hämtar sidor från den primära databasen.

Viktigt: När en databas på en sekundär replik är i tillståndet REVERTING lämnar tvingad redundansväxling till den sekundära repliken databasen i ett tillstånd där den inte kan startas som en primär databas. Antingen måste databasen återansluta som en sekundär databas, eller så måste du använda nya loggposter från en loggsäkerhetskopia.

4 = Initiera. Anger fasen för ångra när transaktionsloggen som krävs för en sekundär databas för att komma ikapp ångra LSN levereras och härdas på en sekundär replik.

Viktigt: När en databas på en sekundär replik är i tillståndet INITIALIZING lämnar tvingad redundansväxling till den sekundära repliken databasen i ett tillstånd där den inte kan startas som en primär databas. Antingen måste databasen återansluta som en sekundär databas, eller så måste du använda nya loggposter från en loggsäkerhetskopia.
synchronization_state_desc nvarchar(60) Beskrivning av dataförflyttningstillståndet, en av:

– SYNKRONISERAR INTE
-SYNKRONISERA
-SYNKRONISERAS
-ÅTERGÅ
-INITIERAR
is_commit_participant bit 0 = Transaktionsincheckning synkroniseras inte med avseende på den här databasen.

1 = Transaktionsincheckning synkroniseras med avseende på den här databasen.

För en databas på en tillgänglighetsreplik med asynkron incheckning är det här värdet alltid 0.

För en databas på en synkron tillgänglighetsreplik för incheckning är det här värdet endast korrekt för den primära databasen.
synchronization_health pytteliten Återspeglar skärningspunkten för synkroniseringstillståndet för en databas som är ansluten till tillgänglighetsgruppen på tillgänglighetsrepliken och tillgänglighetsläget för tillgänglighetsrepliken (synkront incheckning eller asynkront incheckningsläge), något av följande värden.

0 = Inte felfri. Databasens synchronization_state är 0 (SYNKRONISERAS INTE).

1 = Delvis felfri. En databas på en synkron tillgänglighetsreplik anses delvis felfri om synchronization_state är 1 (SYNKRONISERING).

2 = Felfri. En databas på en synkron tillgänglighetsreplik anses vara felfri om synchronization_state är 2 (SYNKRONISERAD) och en databas på en tillgänglighetsreplik med asynkron incheckning anses vara felfri om synchronization_state är 1 (SYNKRONISERING).
synchronization_health_desc nvarchar(60) Beskrivning av tillgänglighetsdatabasens synchronization_health.

- NOT_HEALTHY
- PARTIALLY_HEALTHY
-FRISK
database_state pytteliten 0 = Online
1 = Återställa
2 = Återställning
3 = Väntande återställning
4 = Misstänkt
5 = Nödläge
6 = Offline

Obs! Samma som kolumnen state i sys.databases.
database_state_desc nvarchar(60) Beskrivning av database_state för tillgänglighetsrepliken.

-UPPKOPPLAD
-ÅTERSTÄLLA
-ÅTERSTÄLLA
- RECOVERY_PENDING
-MISSTÄNKA
-NÖD
-OFFLINE

Obs! Samma som kolumnen state_desc i sys.databases.
is_suspended bit Databastillstånd, något av:

0 = Återupptas
1 = Pausad
suspend_reason pytteliten Om databasen är pausad beror orsaken till det inaktiverade tillståndet, något av:

0 = Användaråtgärd
1 = Pausa från partner
2 = Gör om
3 = Avbildning
4 = Använd
5 = Starta om
6 = Ångra
7 = Förlängning
8 = Fel vid beräkningen av synkroniseringspunkten för sekundär replik
suspend_reason_desc nvarchar(60) Beskrivning av orsaken till det inaktiverade tillståndet i databasen, något av:

SUSPEND_FROM_USER = En användare pausade dataflytt manuellt

SUSPEND_FROM_PARTNER = Databasrepliken pausas efter en tvingad redundansväxling

SUSPEND_FROM_REDO = Ett fel uppstod under omgörningsfasen

SUSPEND_FROM_APPLY = Ett fel uppstod när loggen skulle skrivas till filen (se felloggen)

SUSPEND_FROM_CAPTURE = Ett fel uppstod vid insamling av loggen på den primära repliken

SUSPEND_FROM_RESTART = Databasrepliken avbröts innan databasen startades om (se felloggen)

SUSPEND_FROM_UNDO = Ett fel uppstod under ångra-fasen (se felloggen)

SUSPEND_FROM_REVALIDATION = Matchningsfel för loggändring identifieras vid återanslutning (se fellogg)

SUSPEND_FROM_XRF_UPDATE = Det går inte att hitta den gemensamma loggpunkten (se felloggen)
recovery_lsn numerisk(25,0) På den primära repliken, slutet av transaktionsloggen innan den primära databasen skriver nya loggposter efter återställning eller redundansväxling. För en viss sekundär databas, om det här värdet är mindre än det aktuella härdade LSN (last_hardened_lsn), är recovery_lsn det värde som den sekundära databasen skulle behöva synkronisera om (d.v.s. för att återgå till och initiera om till). Om det här värdet är större än eller lika med det aktuella härdade LSN:t skulle omsynkronisering vara onödig och skulle inte inträffa.

recovery_lsn visar ett loggblocks-ID med nollor. Det är inte ett verkligt loggsekvensnummer (LSN).
truncation_lsn numerisk(25,0) För den primära databasen på den primära repliken återspeglar den minsta loggtrunkerings-LSN för alla motsvarande sekundära databaser. Om lokal loggtrunkering blockeras (till exempel av en säkerhetskopieringsåtgärd) kan detta LSN vara högre än det lokala trunkerings-LSN.

För en viss sekundär databas återspeglar trunkeringspunkten för databasen.

truncation_lsn visar ett loggblocks-ID som är vadderat med nollor. Det är inte ett verkligt loggsekvensnummer.
last_sent_lsn numerisk(25,0) Loggblocksidentifieraren som anger den punkt upp till vilken alla loggblock har skickats av den primära. Det här är ID:t för nästa loggblock som skickas i stället för ID:t för det senast skickade loggblocket.

last_sent_lsn visar ett loggblocks-ID med nollor. Det är inte ett verkligt loggsekvensnummer.
last_sent_time datetime Tid då det senaste loggblocket skickades.
last_received_lsn numerisk(25,0) Loggblocks-ID som identifierar den punkt som alla loggblock har tagits emot av den sekundära repliken som är värd för den sekundära databasen.

last_received_lsn visar ett loggblocks-ID med nollor. Det är inte ett verkligt loggsekvensnummer.
last_received_time datetime Tid då loggblocks-ID:t i det senaste meddelandet som togs emot lästes på den sekundära repliken.
last_hardened_lsn numerisk(25,0) Början av loggblocket som innehåller loggposterna för senaste härdade LSN på en sekundär databas.

På en primär databas med asynkron incheckning eller på en synkron incheckningsdatabas vars aktuella princip är "fördröjning" är värdet NULL. För andra synkrona primära databaser anger last_hardened_lsn det lägsta härdade LSN-värdet för alla sekundära databaser.

Obs!last_hardened_lsn visar ett loggblocks-ID med nollor. Det är inte ett verkligt loggsekvensnummer.
last_hardened_time datetime I en sekundär databas är tiden för loggblocksidentifieraren för den senaste härdade LSN (last_hardened_lsn). I en primär databas visar den tid som motsvarar minsta härdade LSN.
last_redone_lsn numerisk(25,0) Verkligt loggsekvensnummer för den senaste loggposten som gjordes om på den sekundära databasen. last_redone_lsn är alltid mindre än last_hardened_lsn.
last_redone_time datetime Tid då den senaste loggposten gjordes om på den sekundära databasen.
log_send_queue_size bigint Mängden loggposter för den primära databasen som inte har skickats till de sekundära databaserna i kilobyte (KB).
log_send_rate bigint Genomsnittlig hastighet med vilken den primära replikinstansen skickade data under den senaste aktiva perioden, i kilobyte (KB)/sekund.
redo_queue_size bigint Mängden loggposter i loggfilerna för den sekundära repliken som ännu inte har gjorts om, i kilobyte (KB).
redo_rate bigint Genomsnittlig hastighet med vilken loggposterna görs om på en viss sekundär databas, i kilobyte (KB)/sekund.

redo_rate beräknas genom att dividera det totala antalet loggbyte som gjorts om sedan databasmotorns start med det tidsintervall då omeringen aktivt kördes, i stället för efter den förflutna tiden. Eftersom redo kanske inte körs kontinuerligt kan det resulterande värdet vara annorlunda (högre) än värdet för Database Replica:Redone Bytes/sec prestandaräknare.
filestream_send_rate bigint Den hastighet med vilken FILESTREAM-filerna skickas till den sekundära repliken, i kilobyte (KB)/sekund.
end_of_log_lsn numerisk(25,0) Lokal slut på logg-LSN. Verkligt LSN som motsvarar den senaste loggposten i loggcachen på de primära och sekundära databaserna. På den primära repliken återspeglar de sekundära raderna slutet av logg-LSN från de senaste förloppsmeddelandena som de sekundära replikerna har skickat till den primära repliken.

end_of_log_lsn visar ett loggblocks-ID med nollor. Det är inte ett verkligt loggsekvensnummer.
last_commit_lsn numerisk(25,0) Verkligt loggsekvensnummer som motsvarar den senaste incheckningsposten i transaktionsloggen.

I den primära databasen motsvarar detta den senaste incheckningsposten som bearbetats. Rader för sekundära databaser visar loggsekvensnumret som den sekundära repliken har skickat till den primära repliken.

På den sekundära repliken är detta den sista incheckningsposten som gjordes om.
last_commit_time datetime Tid som motsvarar den senaste incheckningsposten.

I den sekundära databasen är den här gången samma som i den primära databasen.

På den primära repliken visar varje sekundär databasrad den tid som den sekundära repliken som är värd för den sekundära databasen har rapporterat tillbaka till den primära repliken. Tidsskillnaden mellan den primära databasraden och en viss sekundär databasrad representerar ungefär mål för återställningspunkt (RPO), förutsatt att processen för att göra om fångas upp och att förloppet har rapporterats tillbaka till den primära repliken av den sekundära repliken.
low_water_mark_for_ghosts bigint Ett monotont ökande tal för databasen som anger ett lågvattenmärke som används av ghost och beständig versionslagring på den primära databasen. Om en skrivarbetsbelastning körs på den primära men det här talet inte ökar med tiden innebär det att rensningen av spök- och beständiga versionsarkiv kan fördröjas. För att avgöra vilka spökrader och vilka radversioner som ska rensas använder den primära repliken det minsta värdet för den här kolumnen för den här databasen för alla repliker (inklusive den primära repliken).
secondary_lag_seconds bigint Antalet sekunder som den sekundära repliken ligger bakom den primära repliken under synkroniseringen.

gäller för: SQL Server 2016 (13.x) och senare versioner.
quorum_commit_lsn numerisk(25,0) Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
quorum_commit_time datetime Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.

Behörigheter

Kräver behörigheten VIEW DATABASE STATE (VISA DATABASTILLSTÅND) för databasen.

Se även