sys.dm_db_log_stats (Transact-SQL)
Область применения: SQL Server 2016 (13.x) с пакетом обновления 2 (SP 2) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает атрибуты сводного уровня и сведения о файлах журнала транзакций баз данных. Используйте эти сведения для мониторинга и диагностика работоспособности журнала транзакций.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sys.dm_db_log_stats ( database_id )
Аргументы
database_id | NULL | ПО УМОЛЧАНИЮ
Идентификатор базы данных. database_id
имеет значение int
. Допустимые входные данные — это идентификатор базы данных или NULL
DEFAULT
. Значение по умолчанию — NULL
. NULL
и DEFAULT
эквивалентны значения в контексте текущей базы данных.
Можно указать встроенную функцию DB_ID . При использовании DB_ID
без указания имени базы данных уровень совместимости текущей базы данных должен иметь значение 90 или больше.
Возвращаемые таблицы
Имя столбца | Тип данных | Description |
---|---|---|
database_id | int | Идентификатор базы данных. В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере. |
recovery_model | nvarchar(60) | Модель восстановления базы данных. Возможные значения: ПРОСТОЙ BULK_LOGGED FULL |
log_min_lsn | nvarchar(24) | Текущий номер последовательности журнала запуска (LSN) в журнале транзакций. |
log_end_lsn | nvarchar(24) | Номер последовательности журнала (LSN) последней записи журнала в журнале транзакций. |
current_vlf_sequence_number | bigint | Текущий номер последовательности виртуального журнала (VLF) во время выполнения. |
current_vlf_size_mb | float | Текущий размер файла виртуального журнала (VLF) в МБ. |
total_vlf_count | bigint | Общее количество файлов виртуальных журналов (VLFs) в журнале транзакций. |
total_log_size_mb | float | Общий размер журнала транзакций в МБ. |
active_vlf_count | bigint | Общее количество активных файлов виртуальных журналов (VLFs) в журнале транзакций. |
active_log_size_mb | float | Общий размер активного журнала транзакций в МБ. |
log_truncation_holdup_reason | nvarchar(60) | Причина удержания усечения журнала. Значение совпадает со log_reuse_wait_desc столбцом sys.databases . (Более подробные объяснения этих значений см. в разделе Журнал транзакций). Возможные значения: NOTHING CHECKPOINT LOG_BACKUP ACTIVE_BACKUP_OR_RESTORE ACTIVE_TRANSACTION DATABASE_MIRRORING REPLICATION DATABASE_SNAPSHOT_CREATION LOG_SCAN РЕПЛИКА ДОСТУПНОСТИ OLDEST_PAGE XTP_CHECKPOINT ДРУГИЕ ВРЕМЕННЫЕ |
log_backup_time | datetime | Время резервного копирования журнала транзакций. |
log_backup_lsn | nvarchar(24) | Последний номер последовательности журналов резервного копирования журналов транзакций (LSN). |
log_since_last_log_backup_mb | float | Размер журнала в МБ с момента последнего номера последовательности журнала резервного копирования журнала транзакций (LSN). |
log_checkpoint_lsn | nvarchar(24) | Последний номер последовательности журнала контрольной точки (LSN). |
log_since_last_checkpoint_mb | float | Размер журнала в МБ после последнего номера последовательности журналов контрольной точки (LSN). |
log_recovery_lsn | nvarchar(24) | Номер последовательности журнала восстановления (LSN) базы данных. Если log_recovery_lsn это происходит до LSN контрольной точки, log_recovery_lsn является самой старой активной транзакцией LSN, в противном случае log_recovery_lsn используется LSN контрольной точки. |
log_recovery_size_mb | float | Размер журнала в МБ с номером последовательности журнала восстановления журнала (LSN). |
recovery_vlf_count | bigint | Общее количество файлов виртуальных журналов (VLFs), которые необходимо восстановить, если произошел отработка отказа или перезапуск сервера. |
Замечания
При запуске sys.dm_db_log_stats
базы данных, которая участвует в группе доступности в качестве вторичной реплики, возвращается только подмножество описанных выше полей. В настоящее время возвращается только database_id
recovery_model
и log_backup_time
возвращается при запуске в базе данных-получателе.
Разрешения
Требуется VIEW SERVER STATE
разрешение в базе данных.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.
Примеры
А. Определение баз данных в экземпляре SQL Server с большим количеством VLFs
Следующий запрос возвращает базы данных с более чем 100 VLFs в файлах журнала. Большое количество VLFs может повлиять на время запуска, восстановления и восстановления базы данных.
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. Определение баз данных в экземпляре SQL Server с резервными копиями журнала транзакций старше 4 часов
Следующий запрос определяет время последнего резервного копирования журналов для баз данных в экземпляре.
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);
См. также
Динамические административные представления и функции (Transact-SQL)
Динамические административные представления базы данных (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)