Megosztás a következőn keresztül:


sys.dm_hadr_database_replica_states (Transact-SQL)

A következőkre vonatkozik:SQL ServerFelügyelt Azure SQL-példány

Egy sort ad vissza minden olyan adatbázishoz, amely egy Always On rendelkezésre állási csoportban vesz részt, amelyhez az SQL Server helyi példánya egy rendelkezésre állási replikát üzemeltet. Ez a dinamikus felügyeleti nézet az elsődleges és a másodlagos replikák állapotadatait is elérhetővé teszi. Egy másodlagos replikán ez a nézet egy sort ad vissza a kiszolgálópéldány összes másodlagos adatbázisához. Az elsődleges replikán ez a nézet egy sort ad vissza az egyes elsődleges adatbázisokhoz, és egy további sort a megfelelő másodlagos adatbázishoz.

Fontos

A művelettől és a magasabb szintű állapotoktól függően előfordulhat, hogy az adatbázis-állapot adatai nem érhetők el vagy elavultak. Ezenkívül az értékeknek csak helyi relevanciájuk van. Az elsődleges replika esetében például a last_hardened_lsn oszlop értéke az elsődleges replika számára jelenleg elérhető adott másodlagos adatbázis adatait tükrözi, nem pedig a másodlagos replika által jelenleg elérhető, ténylegesen megkeményített naplósorozatszámot (LSN).

Oszlop neve Adattípus Leírás (elsődleges replikán)
database_id Az adatbázis azonosítója, amely az SQL Server egy példányán belül egyedi. Ez ugyanaz az érték, mint a sys.databases katalógusnézetben.
group_id uniqueidentifier Annak a rendelkezésreállási csoportnak az azonosítója, amelyhez az adatbázis tartozik.
replica_id uniqueidentifier A rendelkezésre állási replika azonosítója a rendelkezésre állási csoportban.
group_database_id uniqueidentifier Az adatbázis azonosítója a rendelkezésre állási csoportban. Ez az azonosító azonos minden olyan replikán, amelyhez az adatbázis csatlakozik.
is_local bit Azt, hogy a rendelkezésre állási adatbázis helyi-e, az alábbiak egyike:

0 = Az adatbázis nem helyi az SQL Server-példányon.
1 = Az adatbázis helyi a kiszolgálópéldányon.
is_primary_replica bit A 1 adja vissza, ha a replika elsődleges, vagy másodlagos replika esetén 0.

A következőkre vonatkozik: SQL Server 2014 (12.x) és újabb verziókra.
synchronization_state apró Adatáthelyezési állapot, az alábbi értékek egyike.

0 = Nincs szinkronizálás. Az elsődleges adatbázisok esetében az adatbázis nem áll készen a tranzakciónapló szinkronizálására a megfelelő másodlagos adatbázisokkal. Másodlagos adatbázis esetén ez az érték azt jelzi, hogy az adatbázis kapcsolati probléma miatt nem indította el a naplószinkronizálást, fel van függesztve, vagy áttűnési állapotokon megy keresztül az indítás vagy a szerepkör-váltás során.

1 = Szinkronizálás. Elsődleges adatbázis esetén az adatbázis készen áll arra, hogy egy másodlagos adatbázisból fogadja el a vizsgálati kérelmet. Másodlagos adatbázis esetén azt jelzi, hogy aktív adatáthelyezés történik az adatbázis számára.

2 = Szinkronizálva. Az elsődleges adatbázis SYNCHRONIZINGhelyett SYNCHRONIZED jelenít meg. A szinkron véglegesítésű másodlagos adatbázis szinkronizálva jelenik meg, amikor a helyi gyorsítótár azt jelzi, hogy az adatbázis feladatátvételre kész, és szinkronizálódik.

3 = Visszaállítás. A visszavonási folyamat fázisát jelzi, amikor egy másodlagos adatbázis aktívan leküld lapokat az elsődleges adatbázisból.

Figyelem: Ha egy másodlagos replika adatbázisa REVERTING állapotban van, a másodlagos replikára való feladatátvétel kényszerítése az adatbázist olyan állapotban hagyja, amelyben nem indítható el elsődleges adatbázisként. Vagy az adatbázisnak másodlagos adatbázisként kell újracsatlakoznia, vagy új naplórekordokat kell alkalmaznia egy napló biztonsági másolatából.

4 = Inicializálás. A visszavonás fázisát jelzi, amikor a másodlagos adatbázishoz szükséges tranzakciónaplót egy másodlagos replikán szállítják és edzették.

Figyelem: Ha egy másodlagos replika adatbázisa INITIALIZING állapotban van, a másodlagos replikára való feladatátvétel kényszerítése az adatbázist olyan állapotban hagyja, amelyben nem indítható el elsődleges adatbázisként. Vagy az adatbázisnak másodlagos adatbázisként kell újracsatlakoznia, vagy új naplórekordokat kell alkalmaznia egy napló biztonsági másolatából.
synchronization_state_desc nvarchar(60) Az adatáthelyezési állapot leírása, az alábbiak egyike:

NOT SYNCHRONIZING
SYNCHRONIZING
SYNCHRONIZED
REVERTING
INITIALIZING
is_commit_participant bit 0 = A tranzakció véglegesítése nincs szinkronizálva ezzel az adatbázissal kapcsolatban.

1 = A tranzakció véglegesítése szinkronizálva van ezzel az adatbázissal.

Az aszinkron véglegesítési rendelkezésre állási replikán lévő adatbázisok esetében ez az érték mindig 0.

Szinkron véglegesítésű rendelkezésre állási replikán lévő adatbázisok esetében ez az érték csak az elsődleges adatbázisban pontos.
synchronization_health apró Egy olyan adatbázis szinkronizálási állapotának metszetét tükrözi, amely a rendelkezésre állási replika rendelkezésre állási csoportjához csatlakozik, valamint a rendelkezésre állási replika rendelkezésre állási módját (szinkron véglegesítés vagy aszinkron véglegesítési mód). Az alábbi értékek egyike lehet.

0 = Nem egészséges. Az adatbázis synchronization_state0 (NOT SYNCHRONIZING).

1 = Részben egészséges. A szinkron véglegesítési rendelkezésre állási replikán lévő adatbázisok részben kifogástalannak minősülnek, ha synchronization_state1 (SYNCHRONIZING).

2 = Egészséges. A szinkron véglegesítés rendelkezésre állási replikán lévő adatbázisok akkor tekinthetők kifogástalannak, ha synchronization_state2 (SYNCHRONIZED), és az aszinkron véglegesítési rendelkezésre állási replikán lévő adatbázis akkor tekinthető kifogástalannak, ha synchronization_state1 (SYNCHRONIZING).
synchronization_health_desc nvarchar(60) A rendelkezésre állási adatbázis synchronization_health leírása.

NOT_HEALTHY
PARTIALLY_HEALTHY
HEALTHY
database_state apró 0 = Online
1 = Visszaállítás
2 = Helyreállítás
3 = Helyreállítás függőben
4 = Gyanús
5 = Vészhelyzet
6 = Offline

Megjegyzés: ugyanaz, mint state oszlop sys.databases.
database_state_desc nvarchar(60) A rendelkezésre állási replika database_state leírása.

ONLINE
RESTORING
RECOVERING
RECOVERY_PENDING
SUSPECT
EMERGENCY
OFFLINE

Megjegyzés: ugyanaz, mint state_desc oszlop sys.databases.
is_suspended bit Adatbázis állapota, az alábbiak egyike:

0 = Folytatás
1 = Felfüggesztve
suspend_reason apró Ha az adatbázis fel van függesztve, a felfüggesztett állapot oka a következő:

0 = Felhasználói művelet
1 = Felfüggesztés a partnertől
2 = Ismétlés
3 = Rögzítés
4 = Alkalmaz
5 = Újraindítás
6 = Visszavonás
7 = Újraértékelés
8 = Hiba a másodlagos replika szinkronizálási pontjának kiszámításában
suspend_reason_desc nvarchar(60) Az adatbázis felfüggesztett állapot okának leírása, az alábbiak egyike:

SUSPEND_FROM_USER = A felhasználó manuálisan felfüggesztette az adatáthelyezést

SUSPEND_FROM_PARTNER = Az adatbázisreplika a kényszerített feladatátvétel után fel van függesztve

SUSPEND_FROM_REDO = Hiba történt az ismétlési fázisban

SUSPEND_FROM_APPLY = Hiba történt a napló fájlba írásakor (lásd a hibanaplót)

SUSPEND_FROM_CAPTURE = Hiba történt a napló elsődleges replikán való rögzítésekor

SUSPEND_FROM_RESTART = Az adatbázisreplika az adatbázis újraindítása előtt fel lett függesztve (lásd a hibanaplót)

SUSPEND_FROM_UNDO = Hiba történt a visszavonási fázisban (lásd a hibanaplót)

SUSPEND_FROM_REVALIDATION = A rendszer a naplóváltozások eltérését észleli az újracsatlakozáskor (lásd a hibanaplót)

SUSPEND_FROM_XRF_UPDATE = Nem található a gyakori naplópont (lásd a hibanaplót)
recovery_lsn numerikus(25,0) Az elsődleges replikán az elsődleges adatbázis előtti tranzakciónapló vége minden új naplórekordot megír a helyreállítás vagy feladatátvétel után. Egy adott másodlagos adatbázis esetében, ha ez az érték kisebb, mint a jelenlegi edzett LSN (last_hardened_lsn), recovery_lsn az az érték, amelyre a másodlagos adatbázisnak újraszinkronizálnia kell (azaz vissza kell térnie és újra kell újraincializálnia). Ha ez az érték nagyobb vagy egyenlő az aktuális edzett LSN-nél, az újraszinkronizálás szükségtelen lenne, és nem történne meg.

A recovery_lsn nullákkal ellátott naplóblokk-azonosítót tükröz. Ez nem tényleges LSN. Az érték származtatásáról a cikk későbbi, Az LSN oszlopértékeinekismertetése című témakörben olvashat.
truncation_lsn numerikus(25,0) Az elsődleges replikán az elsődleges adatbázis esetében a napló csonkolásának minimális LSN-ét tükrözi az összes megfelelő másodlagos adatbázison. Ha a helyi napló csonkolása le van tiltva (például biztonsági mentési művelettel), ez az LSN magasabb lehet, mint a helyi csonkításIN.

Egy adott másodlagos adatbázis esetében az adatbázis csonkítási pontja jelenik meg.
truncation_lsn nullákkal ellátott naplóblokk-azonosítót tükröz. Ez nem egy tényleges naplóütemezési szám.
last_sent_lsn numerikus(25,0) Az elsődleges replika lekérdezésekor a last_sent_lsn minden másodlagos replikaadatbázis-sorhoz jelentést ad. A naplóblokk azonosítója, amely azt a pontot jelzi, ahová az elsődleges minden naplóblokkot elküldte. Ez a következő elküldött naplóblokk azonosítója, nem pedig a legutóbb elküldött naplóblokk azonosítója.

last_sent_lsn nullákkal ellátott naplóblokk-azonosítót tükröz. Ez nem egy tényleges naplóütemezési szám.
last_sent_time datetime Az elsődleges replika lekérdezésekor a last_sent_time minden másodlagos replikaadatbázis-sorhoz jelentést ad. Az utolsó naplóblokk küldésének időpontja.
last_received_lsn numerikus(25,0) Másodlagos replika lekérdezésekor a rendszer last_received_lsn jelent a helyi másodlagos replikaadatbázis sorához. A naplóblokk azonosítója, amely azonosítja azt a pontot, ahová az összes naplóblokkot megkapta a másodlagos adatbázist üzemeltető másodlagos replika.

A last_received_lsn nullákkal ellátott naplóblokk-azonosítót tükröz. Ez nem egy tényleges naplóütemezési szám.
last_received_time datetime Másodlagos replika lekérdezésekor a rendszer last_received_time jelent a helyi másodlagos replikaadatbázis sorához. Az az idő, amikor a legutóbbi üzenet naplóblokk-azonosítója beolvasva lett a másodlagos replikán.
last_hardened_lsn numerikus(25,0) A legutóbb megerősített LSN naplórekordjait tartalmazó naplóblokk kezdete egy másodlagos adatbázisban.

Az aszinkron véglegesítés elsődleges adatbázisán vagy egy szinkron véglegesítési adatbázison, amelynek jelenlegi szabályzata delay, az érték NULL. Más szinkron véglegesítésű elsődleges adatbázisok esetében a last_hardened_lsn a megkeményített LSN minimális értéke az összes másodlagos adatbázison.

Megjegyzés: a last_hardened_lsn nullákkal ellátott naplóblokk-azonosítót tükröz. Ez nem egy tényleges naplóütemezési szám. További információ: Az LSN-oszlopértékekismertetése a cikk későbbi részében.
last_hardened_time datetime Másodlagos adatbázisban az utolsó megerősített LSN (last_hardened_lsn) naplóblokkazonosítójának időpontja. Egy elsődleges adatbázisban a minimálisan megerősített LSN-nek megfelelő időt tükrözi.
last_redone_lsn numerikus(25,0) A másodlagos adatbázisban újra kiosztott utolsó naplórekord tényleges naplóütemezési száma. A last_redone_lsn mindig kisebb, mint last_hardened_lsn.
last_redone_time datetime Az az időpont, amikor az utolsó naplórekordot újból feladták a másodlagos adatbázisban.
log_send_queue_size bigint A másodlagos adatbázisokba nem küldött elsődleges adatbázis naplórekordjainak száma kilobájtban (KB) kifejezve.
log_send_rate bigint Az elsődleges replikapéldány által az utolsó aktív időszakban küldött adatok átlagos sebessége kilobájtban (KB)/másodpercben.
redo_queue_size bigint A másodlagos replika naplófájljainak száma, amelyek még nem újak, kilobájtban (KB) kifejezve.
redo_rate bigint A naplórekordok egy adott másodlagos adatbázisban való újbóli újbóli közzétételének átlagos sebessége kilobájtban (KB)/másodpercben.

redo_rate a rendszer úgy számítja ki, hogy az adatbázismotor indítása óta a teljes naplóbájtot elosztja az újrafuttatáskor eltelt idő és nem az eltelt idő alapján. Mivel előfordulhat, hogy az ismétlés nem fut folyamatosan, az eredményül kapott érték eltérhet (magasabb), mint Database Replica:Redone Bytes/sec teljesítményszámláló értéke.
filestream_send_rate bigint Megadja, hogy a FILESTREAM-fájlok milyen sebességgel legyenek szállítva a másodlagos replikába kilobájtban (KB)/másodpercben.
end_of_log_lsn numerikus(25,0) A napló LSN-jének helyi vége. Az elsődleges és másodlagos adatbázisok naplógyorsítótárában lévő utolsó naplórekordnak megfelelő tényleges LSN. Az elsődleges replikán a másodlagos sorok a napló LSN-ének végét tükrözik a másodlagos replikák által az elsődleges replikának küldött legutóbbi állapotüzenetekből.

end_of_log_lsn nullákkal ellátott naplóblokk-azonosítót tükröz. Ez nem egy tényleges naplóütemezési szám. További információ: Az LSN-oszlopértékekismertetése a cikk későbbi részében.
last_commit_lsn numerikus(25,0) A tranzakciónapló utolsó véglegesítési rekordjának megfelelő tényleges naplóütemezési szám.

Az elsődleges adatbázisban ez az utolsó feldolgozott véglegesítési rekordnak felel meg. A másodlagos adatbázisok sorai azt a naplóütemezési számot jelenítik meg, amelyet a másodlagos replika küldött az elsődleges replikának.
A másodlagos replikán ez az utolsó véglegesítési rekord, amely újra lett állítva.
last_commit_time datetime Az utolsó véglegesítési rekordnak megfelelő idő.

A másodlagos adatbázisban ez az idő megegyezik az elsődleges adatbázissal.

Az elsődleges replikán minden másodlagos adatbázissor megjeleníti azt az időpontot, amikor a másodlagos adatbázist üzemeltető másodlagos replika visszajelenti az elsődleges replikának. Az elsődleges adatbázis sora és egy adott másodlagos adatbázis sor közötti időkülönbség körülbelül a helyreállítási pont célkitűzését (RPO) jelöli, feltéve, hogy az ismétlési folyamat be van állítva, és hogy az előrehaladást a másodlagos replika jelentette vissza az elsődleges replikának.
low_water_mark_for_ghosts bigint Az adatbázis monoton módon növekvő száma, amely azt jelzi, hogy az elsődleges adatbázisban a ghost és az állandó verziójú tárolók által használt alacsony vízjel jelenik meg. Ha egy írási számítási feladat fut az elsődlegesen, de ez a szám nem növekszik az idő múlásával, az azt jelenti, hogy a szellem- és az állandó verziótár karbantartása leállhat. Annak eldöntéséhez, hogy mely szellemsorokat és mely sorverziókat kell megtisztítani, az elsődleges replika ennek az oszlopnak a minimális értékét használja az adatbázishoz az összes replikában (beleértve az elsődleges replikát is).
secondary_lag_seconds bigint A másodlagos replika által az elsődleges replika mögötti másodpercek száma a szinkronizálás során.

Az elsődleges replikán az egyes másodlagos adatbázisok szinkronizálási késleltetése (késése) a másodlagos replikán még megerősítendő elsődleges replikán a legkorábbi megkeményített LSN-nek a megkeményedése óta eltelt másodpercek száma. Ez az érték 0 jelenik meg, ha az adatáthelyezés fel van függesztve. Az adatáthelyezésnek nem felfüggesztett állapotban kell lennie ahhoz, hogy ez az érték aktív késést mutasson.

A következőkre vonatkozik: SQL Server 2016 (13.x) és újabb verziókra.

Az LSN-oszlopértékek ismertetése

A end_of_log_lsn, last_hardened_lsn, last_received_lsn, last_sent_lsn, recovery_lsnés truncation_lsn oszlopok értékei nem tényleges naplóütemezési számok (LSN-ek). Ezek az értékek inkább egy nullákkal ellátott naplóblokk-azonosítót tükröznek.

end_of_log_lsn, last_hardened_lsnés recovery_lsn flöss LSN-eket jelentenek. Például a last_hardened_lsn a következő blokk kezdetét jelzi a már lemezen lévő blokkok mellett. Tehát minden olyan LSN, amely kisebb a last_hardened_lsn értékével, lemezen van. Az ennél az értéknél nagyobb vagy egyenlő LSN-eket a rendszer nem üríti ki.

A sys.dm_hadr_database_replica_statesáltal visszaadott LSN-értékek közül csak last_redone_lsn valódi LSN.

Engedélyek

Az SQL Server 2019 (15.x) és a korábbi verziók VIEW SERVER STATE engedélyt igényelnek a kiszolgálón.

Az SQL Server 2022 (16.x) és újabb verziói VIEW SERVER PERFORMANCE STATE engedélyt igényelnek a kiszolgálón.