sys.dm_db_log_stats (Transact-SQL)
Aplicável 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_model
e 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)