Compartilhar via


sys.dm_db_log_stats (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) SP 2 e posterior Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Retorna atributos de nível de resumo e informações sobre arquivos de log de transações de bancos de dados. Use essas informações para monitoramento e diagnóstico da integridade do log de transações.

Convenções de sintaxe de Transact-SQL

Sintaxe

 sys.dm_db_log_stats ( database_id )

Argumentos

database_id | NULO | INADIMPLÊNCIA

É a ID do banco de dados. database_id é int. As entradas válidas são o número de identificação de um banco de dados, NULL, ou DEFAULT. O padrão é NULL. NULL e DEFAULT são valores equivalentes no contexto do banco de dados atual.
A função interna DB_ID pode ser especificada. Ao usar DB_ID sem especificar um nome de banco de dados, o nível de compatibilidade do banco de dados atual deve ser 90 ou superior.

Tabelas retornadas

Nome da coluna Tipo de dados Descrição
database_id int ID do banco de dados.

No Banco de Dados SQL do Azure, os valores são exclusivos em um único banco de dados ou em um pool elástico, mas não em um servidor lógico.
recovery_model nvarchar(60) Modelo de recuperação do banco de dados. Os valores possíveis incluem:
SIMPLES
BULK_LOGGED
FULL
log_min_lsn nvarchar(24) Número de sequência (LSN) do log inicial atual no log de transações.
log_end_lsn nvarchar(24) LSN (número de seqüência de log) do último registro de log no log de transações.
current_vlf_sequence_number bigint Número de sequência do arquivo de log virtual (VLF) atual no momento da execução.
current_vlf_size_mb float Tamanho atual do arquivo de log virtual (VLF) em MB.
total_vlf_count bigint Número total de VLFs (arquivos de log virtuais) no log de transações.
total_log_size_mb float Tamanho total do log de transações em MB.
active_vlf_count bigint Número total de VLFs (arquivos de log virtuais) ativos no log de transações.
active_log_size_mb float Tamanho total do log de transações ativo em MB.
log_truncation_holdup_reason nvarchar(60) Motivo de retenção de truncamento de log. O valor é igual à log_reuse_wait_desc coluna de sys.databases. (Para obter explicações mais detalhadas desses valores, consulte O Log de Transações).
Os valores possíveis incluem:
NOTHING
CHECKPOINT
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
DATABASE_MIRRORING
REPLICAÇÃO
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
OUTROS TRANSITÓRIOS
log_backup_time datetime Hora do último backup do log de transações.
log_backup_lsn nvarchar(24) Último LSN (número de sequência do log de backup) do log de transações.
log_since_last_log_backup_mb float Tamanho do log em MB desde o último LSN (número de sequência de log de backup) do log de transações.
log_checkpoint_lsn nvarchar(24) LSN (número de sequência do log do último ponto de verificação).
log_since_last_checkpoint_mb float Tamanho do log em MB desde o último LSN (número de sequência de log) do ponto de verificação.
log_recovery_lsn nvarchar(24) LSN (número de seqüência do log de recuperação ) do banco de dados. Se log_recovery_lsn ocorrer antes do LSN do ponto de verificação, log_recovery_lsn é o LSN da transação ativa mais antiga, caso contrário log_recovery_lsn , é o LSN do ponto de verificação.
log_recovery_size_mb float Tamanho do log em MB desde o LSN (número de sequência do log de recuperação de log).
recovery_vlf_count bigint Número total de VLFs (arquivos de log virtuais) a serem recuperados, se houver failover ou reinicialização do servidor.

Comentários

Ao executar sys.dm_db_log_stats em um banco de dados que está participando de um Grupo de Disponibilidade como uma réplica secundária, apenas um subconjunto dos campos descritos acima será retornado. Atualmente, apenas database_id, recovery_modele log_backup_time será retornado quando executado em um banco de dados secundário.

Permissões

Requer a permissão VIEW SERVER STATE no banco de dados.

Permissões do SQL Server 2022 e posteriores

É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Exemplos

R. Determinando bancos de dados em uma instância do SQL Server com alto número de VLFs

A consulta a seguir retorna os bancos de dados com mais de 100 VLFs nos arquivos de log. Um grande número de VLFs pode afetar a inicialização, a restauração e o tempo de recuperação do banco de dados.

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. Determinando bancos de dados em uma instância do SQL Server com backups de log de transações com mais de 4 horas

A consulta a seguir determina os últimos tempos de backup de log para os bancos de dados na instância.

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

Confira também

Exibições e funções de gerenciamento dinâmico (Transact-SQL)
Exibições de gerenciamento dinâmico relacionadas a bancos de dados (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)