Partilhar via


Captura de dados de alterações – sys.dm_cdc_log_scan_sessions

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Retorna uma linha para cada sessão de verificação de log no banco de dados atual. A última linha retornada representa a sessão atual. Você pode usar esta exibição para retornar informações de status sobre a sessão de exame de log atual ou informações agregadas sobre todas as sessões desde que a instância do SQL Server foi iniciada pela última vez.

Os registros são sys.dm_cdc_log_scan_sessions redefinidos sempre que a instância do SQL Server é reiniciada ou após a ocorrência de um failover. Além disso, se o banco de dados consultado estiver na função secundária de um grupo de disponibilidade Always On, nenhum registro será retornado.

Para obter mais informações, consulte O que é CDC (captura de dados de alteração)?

Nome da coluna Tipo de dados Descrição
session_id int ID da sessão.

0 = os dados retornados nesta linha são uma agregação de todas as sessões desde que a instância do SQL Server foi iniciada pela última vez.
start_time datetime A hora em que a sessão foi iniciada.

Quando session_id = 0, a hora em que a coleta de dados agregados foi iniciada.
end_time datetime A hora em que a sessão foi encerrada.

NULL = a sessão está ativa.

Quando session_id = 0, a hora em que a última sessão foi encerrada.
duration int A duração da sessão em segundos.

0 = a sessão não contém transações do Change Data Capture.

Quando o session_id = 0, a soma da duração (em segundos) de todas as sessões com transações de captura de dados de alterações.
scan_phase nvarchar(200) A fase atual da sessão. Veja os valores possíveis e suas descrições:

1: Configuração de leitura
2: primeiro exame, criando a tabela de hash
3: segundo exame
4: segundo exame
5: segundo exame
6: Controle de versão do esquema
7: último segundo
8: concluído

Quando session_id = 0, esse valor é sempre "Aggregate".
error_count int Número de erros encontrados.

Quando session_id = 0, o número total de erros em todas as sessões.
start_lsn nvarchar(23) Iniciando LSN para a sessão.

Quando o session_id = 0, LSN inicial da última sessão.
current_lsn nvarchar(23) LSN atual sendo verificado.

Quando session_id = 0, o LSN atual é 0.
end_lsn nvarchar(23) Encerrando LSN para a sessão.

NULL = a sessão está ativa.

Quando session_id = 0, o LSN final da última sessão.
tran_count bigint Número de transações do Change Data Capture processadas. Este contador é populado na fase 2.

Quando session_id = 0, o número de transações processadas em todas as sessões.
last_commit_lsn nvarchar(23) LSN do último registro de log de confirmação processado.

Quando session_id = 0, o LSN do último registro de log de confirmação de qualquer sessão.
last_commit_time datetime Hora em que o último registro de log de confirmação foi processado.

Quando session_id = 0, a hora do último registro de log de confirmação de qualquer sessão.
log_record_count bigint Número de registros de log verificados.

Quando session_id = 0, o número de registros examinados em todas as sessões.
schema_change_count int Número de operações de linguagem de definição de dados (DDL) detectados. Este contador é populado na fase 6.

Quando session_id = 0, o número operações DDL processadas em todas as sessões.
command_count bigint Número de comandos processados.

Quando o session_id = 0, o número de comandos processados em todas as sessões.
first_begin_cdc_lsn nvarchar(23) Primeiro LSN que contém transações do Change Data Capture.

Quando session_id = 0, o primeiro LSN que continha transações de captura de dados de alterações.
last_commit_cdc_lsn nvarchar(23) LSN do último registro de log de confirmação que contém transações do Change Data Capture.

Quando session_id = 0, o LSN do último registro de log de confirmação de qualquer sessão que continha transações de captura de dados de alterações
last_commit_cdc_time datetime Horário em que o último registro de log de confirmação foi processado que contém transações do Change Data Capture.

Quando session_id = 0, a hora do último registro de log de confirmação de qualquer sessão que continha transações de captura de dados de alterações.
latency int A diferença, em segundos, entre end_time e last_commit_cdc_time, na sessão. Este contador é populado no final da fase 7.

Quando session_id = 0, o último valor de latência diferente de zero registrado por uma sessão.
empty_scan_count int Número de sessões sucessivas que não contém nenhuma transação do Change Data Capture.
failed_sessions_count int Número de sessões que falharam.

Comentários

O sys.dm_cdc_log_scan_sessions DMV contém até 32 sessões de varredura e um agregado de todas as sessões de varredura com session_id= 0. Portanto, a qualquer momento, essa exibição de gerenciamento dinâmico pode conter no máximo 33 linhas.

Permissões

Requer permissão VIEW DATABASE STATE para consultar a exibição de gerenciamento dinâmico sys.dm_cdc_log_scan_sessions. Para obter mais informações sobre permissões nas exibições de gerenciamento dinâmico, confira Exibições e funções de gerenciamento dinâmico (Transact-SQL).

Permissões do SQL Server 2022 e posteriores

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

Exemplos

O exemplo a seguir retorna informações da sessão mais atual.

USE AdventureWorks2022;  
GO  
SELECT session_id, start_time, end_time, duration, scan_phase,  
    error_count, start_lsn, current_lsn, end_lsn, tran_count,  
    last_commit_lsn, last_commit_time, log_record_count, schema_change_count,  
    command_count, first_begin_cdc_lsn, last_commit_cdc_lsn,   
    last_commit_cdc_time, latency, empty_scan_count, failed_sessions_count  
FROM sys.dm_cdc_log_scan_sessions  
WHERE session_id = (SELECT MAX(b.session_id) FROM sys.dm_cdc_log_scan_sessions AS b);  
GO  

Próximas etapas