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


sys.dm_db_log_stats (Transact-SQL)

Vonatkozik a következőkre: SQL Server 2016 (13.x) SP2 és későbbi verziók Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Visszaadja az összefoglaló szintű attribútumokat és az adatbázisok tranzakciós naplófájljairól szóló információkat. Ezeket az információkat használja a tranzakciónaplók állapotának monitorálására és diagnosztizálására.

Transact-SQL szintaxis konvenciók

Szemantika

 sys.dm_db_log_stats ( database_id )

Arguments

database_id | NULL | ALAPÉRTELMEZETT

Az adatbázis azonosítója. database_id az int. Az érvényes bemenetek az adatbázis azonosítószáma, NULLvagy DEFAULT. Az alapértelmezett érték a NULL. NULL és DEFAULT ekvivalens értékek a jelenlegi adatbázis kontextusában.
Megadhatja a beépített DB_ID függvényt. Ha adatbázis név megadása nélkül használjuk DB_ID , a jelenlegi adatbázis kompatibilitási szintjének 90 vagy annál magasabbnak kell lennie.

Visszaküldött táblázatok

Oszlop név Adattípus Description
database_id int Adatbázis-azonosító.

Az Azure SQL Database-ben az értékek egyediek egyetlen adatbázisban vagy rugalmas készletben, de nem logikai kiszolgálón belül.
recovery_model nvarchar(60) Az adatbázis helyreállítási modellje. A lehetséges értékek a következők:
EGYSZERŰ
BULK_LOGGED
TELJES
log_min_lsn nvarchar(24) A jelenlegi kezdőnapló sorszám (LSN) a tranzakciónaplóban.
log_end_lsn nvarchar(24) a tranzakciónapló utolsó napló naplójának napló napló sorozatszáma (LSN).
current_vlf_sequence_number bigint A jelenlegi virtuális naplófájl (VLF) sorozatszáma a végrehajtás idején.
current_vlf_size_mb float A jelenlegi virtuális naplófájl (VLF) mérete MB-ban.
total_vlf_count bigint A tranzakciónaplóban található virtuális naplófájlok (VLF) teljes száma.
total_log_size_mb float Teljes tranzakciós napló mérete MB-ben.
active_vlf_count bigint Az aktív virtuális naplófájlok (VLF) teljes száma a tranzakciónaplóban.
active_log_size_mb float Teljes aktív tranzakciós napló méret MB-ben.
log_truncation_holdup_reason nvarchar(60) Log csonkítás miatt kell tartani a gondolatot. Az érték ugyanaz, mint log_reuse_wait_desc az oszlop sys.databases. (Ezeknek az értékeknek a részletesebb magyarázatáért lásd a Tranzakciónaplót).
A lehetséges értékek a következők:
SEMMI
CHECKPOINT
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
Adatbázis tükrözés
REPLIKÁCIÓ
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
EGYÉB ÁTMENETI
log_backup_time datetime Az utolsó tranzakciónapló mentési idő.
log_backup_lsn nvarchar(24) Utolsó tranzakciónapló biztonsági mentési napló sorozatszám (LSN).
log_since_last_log_backup_mb float A naplóméret MB-ben az utolsó tranzakciós napló biztonsági mentési napló sorozatszáma (LSN) óta.
log_checkpoint_lsn nvarchar(24) Utolsó ellenőrzőpont napló szekvenciaszám (LSN).
log_since_last_checkpoint_mb float Naplóméret MB-ben az utolsó ellenőrzőpont log szekvenciaszám (LSN) óta.
log_recovery_lsn nvarchar(24) Az adatbázis helyreállítási napló szekvenciaszáma (LSN ). Ha log_recovery_lsn az ellenőrzőpont előtt történik az LSN, log_recovery_lsn az a legrégebbi aktív tranzakció LSN, egyébként log_recovery_lsn az ellenőrzőpont LSN.
log_recovery_size_mb float A naplóméret MB-ben a log recovery log szekvencia szám (LSN) óta
recovery_vlf_count bigint A virtuális naplófájlok (VLF ) teljes száma, amelyeket vissza kell állítani, ha failover vagy szerver újraindítása történt.

Megjegyzések

Amikor egy olyan adatbázis ellen futtatunk sys.dm_db_log_stats , amely másodlagos replikaként vesz részt egy Elérhetőségi Csoportban, csak a fent leírt mezők egy részhalmazát adják vissza. Jelenleg csak database_id, recovery_model, és log_backup_time jelenik meg, ha másodlagos adatbázis ellen futtatják.

Permissions

Az adatbázis engedélyére VIEW SERVER STATE van szükség.

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

A KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOTÁNAK MEGTEKINTÉSE engedélyre van szükség a kiszolgálón.

Példák

A. Adatbázisok meghatározása SQL Server példányban, ahol nagy számú VLF van

A következő lekérdezés visszaadja azokat az adatbázisokat, amelyekben több mint 100 VLF van a naplófájlokban. A nagy számú VLF befolyásolhatja az adatbázis indítását, visszaállítását és helyreállítási idejét.

SELECT name AS 'Database Name', total_vlf_count AS 'VLF count' 
FROM sys.databases AS s
CROSS APPLY sys.dm_db_log_stats(s.database_id) 
WHERE total_vlf_count  > 100;

B. Adatbázisok meghatározása SQL Server példányban, ahol 4 óránál régebbi tranzakciónaplók mentései vannak

A következő lekérdezés határozza meg az adatbázisok utolsó naplómentési idejét az instance-ban.

SELECT name AS 'Database Name', log_backup_time AS 'last log backup time' 
FROM sys.databases AS s
CROSS APPLY sys.dm_db_log_stats(s.database_id); 

Lásd még:

Dinamikus felügyeleti nézetek és függvények (Transact-SQL)
adatbázissal kapcsolatos dinamikus felügyeleti nézetek (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)