Compartilhar via


Origem CDC

A origem CDC lê um intervalo de dados de alteração de tabelas de alteração do SQL Server 2012 e entrega o downstream de alterações a outros SSIS componentes.

O intervalo de leitura de dados de alteração pela origem CDC é chamado Intervalo de Processamento CDC e é determinado pela tarefa Controle de CDC que é executada antes do início do fluxo de dados atual. O Intervalo de Processamento CDC é derivado do valor de uma variável de pacote que mantém o estado do processamento CDC para um grupo de tabelas.

A origem CDC extrai dados de um banco de dados do SQL Server usando uma tabela de banco de dados, uma exibição ou uma instrução SQL.

A origem CDC usa as configurações seguintes:

  • Um gerenciador de conexões SQL Server ADO.NET para acessar o banco de dados SQL Server CDC. Para obter mais informações sobre como configurar a conexão de origem CDC, consulte Editor de Origem CDC (página Gerenciador de Conexões).

  • Uma tabela habilitada para CDC.

  • O nome da instância de captura da tabela selecionada (se houver mais de uma).

  • O modo de processamento de alteração.

  • O nome da variável de pacote do estado CDC com base no qual o intervalo de Processamento CDC é determinado. A origem CDC não modifica essa variável.

Os dados retornados pela Origem CDC são iguais aos retornados pelas funções do SQL Server CDC cdc.fn_cdc_get_all_changes_<capture-instance-name> ou cdc.fn_cdc_get_net_changes_<capture-instance-name> (quando disponível). A única adição opcional é a coluna, __$initial_processing que indica se o intervalo de processamento atual pode se sobrepor a uma carga inicial da tabela. Para obter mais informações sobre o processamento inicial, consulte Tarefa Controle de CDC.

A origem CDC tem uma saída regular e uma saída de erro.

Tratamento de erros

A origem CDC tem uma saída de erro. A saída de erro de componente inclui as colunas de saída seguintes:

  • Código de Erro: o valor sempre é -1.

  • Coluna de Erro: a coluna de origem que causa o erro (para erros de conversão).

  • Colunas de Linha de Erro: os dados de registro que causam o erro.

Dependendo da configuração de comportamento de erro, a origem CDC oferece suporte ao retorno de erros (conversão de dados, truncamento) que ocorre durante o processo de extração na saída de erro. Para obter mais informações, consulte Editor de Origem CDC (página Saída de Erro).

Suporte do tipo de dados

O componente origem CDC para Microsoft oferece suporte a todos os tipos de dados do SQL Server que estão mapeados para os tipos de dados SSIS corretos.

Solucionando problemas da origem CDC

A seguir são apresentadas informações sobre como solucionar problemas de origem CDC.

Use este script para isolar problemas e reproduzi-los no SQL Server Management Studio

Uma operação de origem CDC é governada pela operação da tarefa Controle CDC executada antes da chamada à origem CDC. A tarefa Controle CDC prepara o valor da variável de pacote do estado CDC para conter LSNs de início e término. Ela executa uma função equivalente ao seguinte script:

use <cdc-enabled-database-name>
               declare @start_lsn binary(10), @end_lsn binary(10)
               set @start_lsn = sys.fn_cdc_increment_lsn(
                       convert(binary(10),'0x' + '<value-from-state-cs>', 1))
               set @end_lsn = 
                       convert(binary(10),'0x' + '<value-from-state-ce>', 1)
               select * from cdc.fn_cdc_get_net_changes_dbo_Table1(@start_lsn,
@end_lsn, '<mode>')

onde:

  • <cdc-enabled-database-name> é o nome do banco de dados do SQL Server que contém as tabelas de alteração.

  • <value-from-state-cs> é o valor que aparece na variável de estado CDC, como em CS/<value-from-state-cs>/ (CS significa Current-processing-range-Start).

  • <value-from-state-ce> é o valor que aparece na variável de estado CDC, como em CE/<value-from-state-cs>/ (CE significa Current-processing-range-End).

  • <mode> corresponde aos modos de processamento CDC. Os modos de processamento têm um dos seguintes valores: Tudo, Tudo com Valores Antigos, Rede, Rede com Máscara de Atualização, Rede com Mesclagem.

Este script ajuda a isolar problemas reproduzindo-os no SQL Server Management Studio, onde é fácil reproduzir e identificar erros.

Mensagem de erro do SQL Server

A mensagem seguinte poderá ser retornada pelo SQL Server:

Um número insuficiente de argumentos for fornecido ao procedimento ou função cdc.fn_cdc_get_net_changes_<..>.

Esse erro não indica que um argumento está faltando. Significa que os valores de LSN de início ou fim na variável de estado CDC são inválidos.

Configurando a origem CDC

Você pode configurar a origem CDC programaticamente ou por meio do SSIS Designer.

Para obter mais informações, consulte um dos tópicos a seguir.

A caixa de diálogo Editor Avançado contém as propriedades que podem ser definidas programaticamente.

Para abrir a caixa de diálogo Editor Avançado:

  • Na tela Fluxo de Dados do seu projeto do SQL Server 2012 Integration Services (SSIS), clique com o botão direito do mouse na origem CDC e selecione Mostrar Editor Avançado.

Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor Avançado, consulte Propriedades personalizadas da origem CDC.

Nesta seção

Conteúdo relacionado