Udostępnij za pomocą


sys.dm_db_log_stats (Transact-SQL)

Dotyczy do: SQL Server 2016 (13.x) SP2 i późniejsze wersje Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Zwraca atrybuty na poziomie podsumowującym oraz informacje z plików dziennika transakcyjnych baz danych. Wykorzystaj te informacje do monitorowania i diagnostyki stanu dziennika transakcji.

Transact-SQL konwencje składni

Składnia

 sys.dm_db_log_stats ( database_id )

Arguments

database_id | NULL | DOMYŚLNY

To ID bazy danych. Parametr database_id ma wartość int. Poprawne dane wejściowe to numer ID bazy danych, NULL, lub DEFAULT. Wartość domyślna to NULL. NULL oraz DEFAULT są wartościami równoważnymi w kontekście aktualnej bazy danych.
Można określić wbudowaną funkcję DB_ID . Przy użyciu DB_ID bez podania nazwy bazy danych, poziom zgodności bieżącej bazy danych musi wynosić 90 lub wyższy.

Tabele zwrócone

Nazwa kolumny Typ danych Description
id_bazy_danych int Identyfikator bazy danych.

W usłudze Azure SQL Database wartości są unikatowe w ramach pojedynczej bazy danych lub elastycznej puli, ale nie w obrębie serwera logicznego.
recovery_model nvarchar(60) Model odzyskiwania bazy danych. Możliwe wartości obejmują:
PROSTY
BULK_LOGGED
PEŁNY
log_min_lsn nvarchar(24) Aktualny numer sekwencyjny logu startowego (LSN) w dzienniku transakcji.
log_end_lsn nvarchar(24) numer sekwencji dziennika (LSN) ostatniego rekordu logu w dzienniku transakcji.
current_vlf_sequence_number bigint Aktualny numer sekwencyjny pliku logu wirtualnego (VLF) w momencie wykonania.
current_vlf_size_mb float Aktualny rozmiar pliku wirtualnego loga (VLF) to MB.
total_vlf_count bigint Całkowita liczba wirtualnych plików logów (VLF) w dzienniku transakcji.
total_log_size_mb float Całkowity rozmiar dziennika transakcji w MB.
active_vlf_count bigint Całkowita liczba aktywnych wirtualnych plików logów (VLF) w dzienniku transakcji.
active_log_size_mb float Całkowity aktywny log transakcji w MB.
log_truncation_holdup_reason nvarchar(60) Powód opóźnienia logarytmu. Wartość jest taka sama jak kolumna log_reuse_wait_desc .sys.databases (Szczegółowe wyjaśnienia tych wartości można znaleźć w Dzienniku Transakcji).
Możliwe wartości obejmują:
NIC
CHECKPOINT
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
Lustrzane Odbicie Bazy Danych
REPLIKACJA
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
INNE PRZEJŚCIOWE ZJAWISKA
log_backup_time datetime Czas na ostatnią kopię zapasową w logu transakcji.
log_backup_lsn nvarchar(24) Ostatni numer sekwencyjny logu kopii kopii zapasowej (LSN).
log_since_last_log_backup_mb float Rozmiar logu w MB od ostatniej transakcji, numer sekwencyjny logu kopii zapasowej (LSN).
log_checkpoint_lsn nvarchar(24) Ostatni numer sekwencyjny punktu kontrolnego (LSN).
log_since_last_checkpoint_mb float Rozmiar logu w MB od ostatniego numeru sekwencyjnego checkpointu (LSN).
log_recovery_lsn nvarchar(24) Numer sekwencyjny dziennika odzyskiwania (LSN) bazy danych. Jeśli log_recovery_lsn nastąpi przed punktem kontrolnym, log_recovery_lsn LSN jest najstarszą aktywną transakcją LSN, w przeciwnym razie log_recovery_lsn jest to LSN punktu kontrolnego.
log_recovery_size_mb float Rozmiar logu w MB od czasu sekwencji logu (LSN).
recovery_vlf_count bigint Całkowita liczba plików wirtualnych logów (VLF) do odzyskania, jeśli nastąpiło przełączanie awaryjne lub restart serwera.

Uwagi

Podczas uruchamiania sys.dm_db_log_stats bazy danych uczestniczącej w Grupie Dostępności jako replika wtórna, zwracany zostanie tylko podzbiór opisanych powyżej pól. Obecnie tylko database_id, recovery_model, i będą log_backup_time zwracane przy uruchomieniu na drugorzędnej bazie danych.

Permissions

Wymaga VIEW SERVER STATE uprawnień w bazie danych.

Uprawnienia dla programu SQL Server 2022 i nowszych

Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.

Przykłady

A. Określanie baz danych w instancji SQL Server z dużą liczbą VLF

Poniższe zapytanie zwraca bazy danych z ponad 100 VLF w plikach logów. Duża liczba VLF może wpływać na czas uruchamiania, przywracania i odzyskiwania bazy danych.

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. Określanie baz danych w instancji SQL Server z backupami dzienników transakcyjnych starszymi niż 4 godziny

Następujące zapytanie określa ostatnie czasy kopii zapasowej logów dla baz danych w instancji.

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); 

Zobacz też

Dynamiczne widoki zarządzania i funkcje (Transact-SQL)
dynamiczne widoki zarządzania związane z bazą danych (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)