Compartir a través de


origen de CDC

El origen CDC lee un intervalo de datos modificados de las tablas de cambios de SQL Server 2012 y entrega los cambios de nivel inferior a otros componentes de SSIS.

El intervalo de lectura de los datos modificados por el origen CDC se denomina intervalo de procesamiento CDC y se determina con la tarea Control CDC que se ejecuta antes de que el flujo de datos actual se inicie. El intervalo de procesamiento CDC se deriva del valor de una variable de paquete que mantiene el estado del procesamiento CDC para un grupo de tablas.

El origen CDC extrae los datos de una base de datos de SQL Server mediante una tabla de base de datos, una vista o una instrucción SQL.

El origen CDC utiliza las configuraciones siguientes:

  • Administrador de conexiones ADO.NET de SQL Server para tener acceso a la base de datos CDC de SQL Server . Para obtener más información acerca de cómo configurar la conexión de origen CDC, vea Editor de origen de CDC (página Administrador de conexiones).

  • Tabla habilitada para CDC.

  • Nombre de la instancia de captura de la tabla seleccionada (si existe más de una).

  • Modo del procesamiento de cambios.

  • Nombre de la variable de paquete de estado CDC basado en lo que determina el intervalo de procesamiento CDC. El origen CDC no modifica esa variable.

Los datos devueltos por el origen CDC son los mismos que los devueltos por las funciones CDC de SQL Server cdc.fn_cdc_get_all_changes_<nombre-instancia-captura> o cdc.fn_cdc_get_net_changes_<nombre-instancia-captura> (si está disponible). La única adición opcional es la columna __$initial_processing que indica si el intervalo de procesamiento actual puede solaparse con una carga inicial de la tabla. Para obtener más información acerca del procesamiento inicial, vea Tarea Control CDC.

El origen de CDC tiene una salida normal y una salida de error.

Tratamiento de errores

El origen de CDC tiene una salida de error. La salida de error del componente incluye las columnas de salida siguientes:

  • Código de error: el valor es siempre -1.

  • Columna de error: la columna de origen que produce el error (para los errores de conversión).

  • Columnas de fila de error: datos de registro que ocasionan el error.

Según la configuración del comportamiento de los errores, el origen CDC permite devolver los errores (conversión de datos, truncamiento) que aparecerán durante el proceso de extracción en la salida de error. Para obtener más información, vea Editor de origen de CDC (página Salida de error).

Compatibilidad con tipos de datos

El componente de origen CDC para Microsoft admite todos los tipos de datos de SQL Server, que se asignan a los tipos de datos de SSIS correctos.

Solucionar problemas del origen de CDC

A continuación se muestra información para solucionar problemas del origen de CDC.

Use este script para aislar los problemas y reproducirlos en SQL Server Management Studio

La operación de origen de CDC se rige por la operación de la tarea Control CDC ejecutada antes de invocar al origen de CDC. La tarea Control CDC prepara el valor de la variable de paquete de estado CDC para contener los LSN inicial y final. Realiza la función equivalente a la del script siguiente:

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>')

donde:

  • <cdc-enabled-database-name> es del nombre de la base de datos de SQL Server que contiene las tablas de cambios.

  • <value-from-state-cs> es el valor que aparece en la variable de estado CDC como CS/<value-from-state-cs>/ (CS representa al inicio del intervalo de procesamiento actual).

  • <value-from-state-ce> es el valor que aparece en la variable de estado CDC como CE/<value-from-state-cs>/ (CE representa al final del intervalo de procesamiento actual).

  • <mode> son los modos de procesamiento de CDC. Los modos de procesamiento tienen uno de los siguientes valores Todo, Todo con valores antiguos, Neto, Neto con máscara de actualización, Neto con combinación.

Este script ayuda a aislar los problemas reproduciéndolos en SQL Server Management Studio, donde resulta sencillo reproducir e identificar los errores.

Mensaje de error de SQL Server

SQL Server podría devolver el mensaje siguiente:

Se ha especificado un número insuficiente de argumentos para el procedimiento o función cdc.fn_cdc_get_net_changes_ <..>.

Este error indica que falta un argumento. Indica que los valores de LSN inicial o final de la variable de estado CDC no son válidos.

Configurar el origen de CDC

Puede configurar el origen de CDC mediante programación o través del Diseñador SSIS.

Para obtener más información, vea uno de los siguientes temas:

El cuadro de diálogo Editor avanzado contiene las propiedades que se pueden establecer mediante programación.

Para abrir el cuadro de diálogo Editor avanzado :

  • En la pantalla Flujo de datos del proyecto de SQL Server 2012 Integration Services (SSIS), haga clic con el botón secundario en el origen CDC y seleccione Mostrar editor avanzado.

Para obtener más información acerca de las propiedades que se pueden establecer en el cuadro de diálogo Editor avanzado, vea Propiedades personalizadas del origen de CDC.

En esta sección

Contenido relacionado