Compartilhar via


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

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric

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