Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do: SQL Server 2016 (13.x) SP2 i późniejsze wersje
Azure SQL Database
Azure SQL Managed Instance
SQL 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)