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