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 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 monitorar e diagnosticar a 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 ID 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 do log de início atual (LSN) no log de transações. |
log_end_lsn | Nvarchar(24) | número de sequência de log (LSN) 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 arquivos de log virtuais (VLFs) 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 virtual) 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 do 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) | Número de sequência do último log de backup do log de transações (LSN). |
log_since_last_log_backup_mb | float | Tamanho do log em MB desde o último número de sequência de log de backup (LSN) do log de transações. |
log_checkpoint_lsn | Nvarchar(24) | Último número de sequência de log de ponto de verificação (LSN). |
log_since_last_checkpoint_mb | float | Tamanho do log em MB desde o último número de sequência de log do ponto de verificação (LSN). |
log_recovery_lsn | Nvarchar(24) | Número de sequência do log de recuperação (LSN) do banco de dados. Se log_recovery_lsn ocorrer antes do LSN do ponto de verificação, é o LSN de transação ativo mais antigo, caso contráriolog_recovery_lsn , log_recovery_lsn é o LSN do ponto de verificação. |
log_recovery_size_mb | float | Tamanho do log em MB desde o número de sequência do log de recuperação de log (LSN). |
recovery_vlf_count | bigint | Número total de arquivos de log virtuais (VLFs) 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, somente um subconjunto dos campos descritos acima será retornado. Atualmente, somente 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 tempos do último 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)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de