Já utiliza ou quer começar a utilizar o CDC (Change Data Capture)?
Para habilitar o CDC em uma Database é muito simples, basta utilizar o script abaixo:
USE [databaseName] <span>EXEC sys.sp_cdc_enable_d</span>b
Já utiliza ou quer começar a utilizar o CDC (Change Data Capture)?
Para habilitar o CDC em uma Database é muito simples, basta utilizar o script abaixo:
USE [databaseName] <span>EXEC sys.sp_cdc_enable_d</span>b
Você precisa listar as tabelas com CDC habilitado?
Apenas utilize o script abaixo dentro da sua database com CDC habilitado.
select name from sys.tables where is_tracked_by_cdc = 1 order by name
Retorno:
Espero que ajude!
Você precisa listar as databases com CDC habilitado?
Apenas use o script abaixo.
SELECT name, is_cdc_enabled FROM sys.databases WHERE database_id > 4 AND is_cdc_enabled = 1 ORDER BY name
Retorno:
Espero que ajude!
Para visualizar a configuração dos jobs de captura (capture) e limpeza (cleanup) é simples, basta utilizar o comando abaixo:
EXECUTE sys.sp_cdc_help_jobs
O retorno trará informações sobre o tempo de retenção, quantidade de registros deletados a cada iteração, intervalo de polling, máximo de scans realizados no log de transação a cada ciclo de verificação, máximo de transações a serem processadas a cada ciclo de verificação.
O Change Data Capture ou mais conhecido como CDC é um recurso disponível no SQL Server que armazena todas as alterações (INSERT, UPDATE, DELETE) realizadas em uma determinada tabela.
Por padrão as databases vem com o CDC desabilitado. Caso seja necessário o CDC deve ser ativado para cada database. Assim que o CDC é ativado é criado um schema chamado cdc e também são criadas alguns objetos e estruturas de controle dentro deste schema, como por exemplo:
Mesmo que você ative o CDC para uma database específica por padrão as tabelas vem com o CDC desativado, portanto é preciso ativá-lo para cada tabela necessária. Assim que o CDC é ativado para uma tabela específica é criada uma tabela com a mesma estrutura e 5 colunas adicionais no schema cdc:
Também são criadas duas funções para extração dos dados:
A extração das alterações realizadas em uma determinada tabela é responsabilidade da instância de captura (capture instance). A origem de extração das alterações utilizada pela instância de captura é o arquivo do log de transação (transaction log) da database. A instância de captura é executada através de um job criado no SQL Server Agent:
Também é criado um outro job no SQL Server Agent, que é o job de limpeza (cleanup). Este job de limpeza é responsável pela limpeza das tabelas do CDC mantendo por padrão 4320 minutos (3 dias) de alterações dentro de cada tabela do CDC e removendo 5000 linhas a cada iteração.
A seguir podemos visualizar a arquitetura do Change Data Capture:
Referências: