CDC 源
CDC 源从 SQL Server 2014 更改表中读取一系列更改数据,并将更改传递到其他 SSIS 组件下游。
由 CDC 源读取的更改数据的范围称作 CDC 处理范围并且由在当前数据流开始前执行的 CDC 控制任务确定。 该 CDC 处理范围是从维护一组表的 CDC 处理状态的包变量的值派生的。
CDC 源通过使用数据库表、视图或 SQL 语句,从 SQL Server 数据库中提取数据。
CDC 源使用以下配置:
用于访问 SQL Server CDC 数据库的 SQL Server ADO.NET 连接管理器。 有关配置 CDC 源连接的详细信息,请参阅 CDC 源编辑器(“连接管理器”页)。
为 CDC 启用的表。
所选表(如果存在多个)的捕获实例的名称。
更改处理模式。
基于所确定的 CDC 处理范围的 CDC 状态包变量的名称。 CDC 源不修改该变量。
CDC 源返回的数据与 SQL Server CDC 函数 cdc.fn_cdc_get_all_changes_<capture-instance-name> 或 cdc.fn_cdc_get_net_changes_<capture-instance-name>(在可用时)返回的数据相同。 唯一可选的添加是列 __$initial_processing ,它指示当前处理范围是否可与表的初始加载重叠。 有关初始处理的详细信息,请参阅 CDC Control Task。
CDC 源有一个常规输出和一个错误输出。
错误处理
CDC 源有一个错误输出。 组件的错误输出包括以下输出列:
错误代码:值始终为 -1。
错误列:导致错误(针对转换错误)的源列。
错误行列:导致了错误的记录数据。
根据错误行为设置,CDC 源支持在错误输出中返回在提取过程中发生的错误(数据转换、截断)。 有关详细信息,请参阅 CDC 源编辑器 (错误输出页) 。
数据类型支持
Microsoft 的 CDC 源组件支持所有 SQL Server 数据类型,这些数据类型映射到正确的 SSIS 数据类型。
CDC 源故障排除
下面包含与排除 CDC 源问题有关的信息。
使用此脚本可以确定问题并且在 SQL Server Management Studio 中复现这些问题
CDC 源操作受到在调用 CDC 源之前执行的 CDC 控制任务操作的约束。 CDC 控制任务准备 CDC 状态包变量的值以便包含开始和结束 LSN。 它执行与下面的脚本等效的函数:
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>')
其中:
<cdc-enabled-database-name>是包含更改表的 SQL Server 数据库的名称。
<value-from-state-cs> 是在 CDC 状态变量中以 CS/<value-from-state-cs>/(CS 表示 Current-processing-range-Start)形式出现的值。
<value-from-state-ce> 是在 CDC 状态变量中以 CE/<value-from-state-cs>/(CE 表示 Current-processing-range-End)形式出现的值。
<mode> 是 CDC 处理模式。 处理模式具有以下值之一: “全部” 、 “全部且具有旧值” 、 “净值” 、 “具有更新掩码的净值” 和 “净值且具有合并” 。
此脚本可通过在 SQL Server Management Studio中复现问题(在其中可以轻松地复现和标识错误),有助于标识问题。
SQL Server 错误消息
下面是可以由 SQL Server返回的消息:
为过程或函数 cdc.fn_cdc_get_net_changes_<..> 提供的参数数目不足。
此错误并不表示缺少参数。 这意味着 CDC 状态变量中的开始或结束 LSN 值无效。
配置 CDC 源
您可以通过编程方式或者通过 SSIS 设计器配置 CDC 源。
有关详细信息,请参阅下列主题之一:
“高级编辑器” 对话框包含可通过编程方式设置的属性。
打开 “高级编辑器” 对话框:
- 在 SQL Server 2014 Integration Services (SSIS) 项目的数据流屏幕中,右键单击 CDC 源并选择“显示高级编辑器”。
有关可在 “高级编辑器” 对话框中设置的属性的详细信息,请参阅 CDC Source Custom Properties。
本节内容
相关内容
- mattmasson.com 上的博客文章 CDC 源的处理模式。