4. Quem sou eu?
Sênior BI Analyst at Comp Line
Services Solutions
BI and Database Consultant and Instructor in
One Way Solution and BI do Brasil
Writer at SQL Magazine
MCSA e MCT em SQL Server
Microsoft Instructor at Hepta Novintec
5. Agenda
Parte 1
Change Data Capture – Overview
Change Data Capture – Arquitetura
Criando o CDC no SQL Server
Entendendo as Funções [get_all_changes] e [get_net_changes]
Parâmetros Avançados – sys.sp_cdc_change_job
Melhores Práticas e Observações
Parte 2
Consumindo os Dados do CDC com SSIS – Default
Consumindo os Dados do CDC com SSIS – Dynamic
6. Change Data Capture - Overview
Feature responsável pela captura de dados de alteração em
tabelas a partir do Log de maneira assíncrona.
Permite o versionamento dos dados com range de duração
definido pelo LSN de início da transação.
Usa as mesmas estrutura de sistema que a replicação
transacional. Por isso permite a captura não somente de
tabelas específicas, mas também de colunas específicas.
9. Parâmetros Avançados
Na procedure de sistema sys.sp_cdc_change_job é possível editar os
seguintes parâmetros de configuração do CDC para o Job de captura:
@maxscans – número de ciclos de leitura do log entre cada pollinginterval;
@maxtrans – número de transações lidas em cada ciclo;
@continuous – habilita a execução continua do job;
@pollinginterval – intervalo em segundos entre cada ciclo de leitura de log.
10. Parâmetros Avançados
Na procedure de sistema sys.sp_cdc_change_job é possível editar os
seguintes parâmetros de configuração do CDC para o Job de limpeza:
@retention – quantidade de tempo em segundos de armazenamento dos dados
históricos;
@threshold – quantidade de registros deletados a cada interação do job;
11. Parâmetros Avançados
Maxscans - Número de
ciclos de leitura do Log Novo ciclo de leitura
Maxstrans - Número de
transações lidas por ciclo
Pollinginterval – tempo
em segundos entre cada
ciclo de leitura
Tempo
15. Melhores Práticas e Observações
1) Cuidado com o subsistema de I/O. Quando o CDC está habilitado, o Log pode
crescer entre 200% e 300%.
3) Mesmo em recovery mode simple e bulk logged ou depois de um backup de log
no mode full o log continua a crescer as tabelas de CDC não forem populadas.
4) Não é possível realizar Shrink ou backup de log para reduzí-lo antes de as
tabelas de CDC estarem devidademente carregadas.
2) O CDC funciona em todos os recovery modes, porém, não será mais possível
realizar operações minimamente logadas.
16. Melhores Práticas e Observações
5) Se o arquivo de Log estiver cheio não será possível carregar as tabelas de CDC. Nesse
caso, a melhor prática é adicionar temporariamente um novo arquivo de Log.
6) Para manter o filegroup primary pequeno e ter uma clara distinção do que são
dados do sistema e dados históricos é recomendando habilitar as tabelas de cdc
em um file group diferente;
7) O CDC funciona em todos os recovery modes, porém, não será mais possível
realizar operações minimamente logadas.
8) Uma boa rotina de Cleanup é recomendada.
17. Consumindo Dados do CDC
através do SSIS - Default
CDC Source – Task usada para captura de dados a partir
de uma tabela de CDC;
CDC Splitter – Task usada para realizar a separação dos
registros Deletados, Inseridos e Atualizados.
CDC Control Task – Task usada para controle de Range
de LSN;
18. Consumindo Dados do CDC
através do SSIS - Default
Verifica o tipo de
carga
Marca o LSN inicial de
Carga
Executa carga inicial
Captura o último LSN
para carga incremental
Executa carga
incremental
Marca o LSN final da
carga inicial
Salva o ultimo LSN
para próxima carga
CDC Control
Task
Control Flow
19. Consumindo Dados do CDC
através do SSIS - Default
CDC Source
CDC Splitter
Destino Inseridas
Data Flow
Destino Atualizadas
Destino Deletadas
21. Consumindo Dados do CDC
através do SSIS - Dynamic
Captura tabela do
ciclo
Habilita Trace Flag
610
Desabilita Trace
Flag 610
Verifica o tipo de
carga
Captura as
colunas a serem
populadas
Executa carga
inicial
Captura as
colunas a serem
populadas
Executa carga
incremental