sys.dm_hadr_database_replica_states (Transact-SQL)
A következőkre vonatkozik:SQL Server
Felü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 SYNCHRONIZING helyett 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_state 0 (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_state 1 (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_state 2 (SYNCHRONIZED ), és az aszinkron véglegesítési rendelkezésre állási replikán lévő adatbázis akkor tekinthető kifogástalannak, ha synchronization_state 1 (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 = Online1 = Visszaállítás2 = Helyreállítás3 = Helyreállítás függőben4 = Gyanús5 = Vészhelyzet6 = OfflineMegjegyzé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ás1 = 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űvelet1 = Felfüggesztés a partnertől2 = Ismétlés3 = Rögzítés4 = Alkalmaz5 = Újraindítás6 = Visszavonás7 = Újraértékelés8 = 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éstSUSPEND_FROM_PARTNER = Az adatbázisreplika a kényszerített feladatátvétel után fel van függesztveSUSPEND_FROM_REDO = Hiba történt az ismétlési fázisbanSUSPEND_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ésekorSUSPEND_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.