处理SSIS 2008中的变更数据捕获
2009-06-16 10:30:13 来源:WEB开发网要得到更详细的信息,您可以参阅联机帮助,找到sys.sp_cdc_enable_db和sys.sp_cdc_enable_table存储过程。
确保SQL代理正在运行;CDC创建两个SQL代理任务;其中,一个SQL代理任务扫描事务日志,在CDC模式中复制启用表的变更到单个变更表中。第二个SQL代理任务在cdc模式中清除单个变更表格。你可以通过执行sys.sp_cdc_help_jobs存储过程查看在这些SQL代理任务中使用的默认值。你可以通过执行cdc_jobs存储过程来更改默认值。默认情况下,清除的任务在三天之后删除变更数据。
如果你在一张表上启用变更数据捕获而且SQL代理没有在运行,那么你将看到下面的警告信息:
SQLServerAgent当前没有在运行,因此它不能被告知这一行为。
日志
为了允许我们的SSIS程序包只获取自上次它运行以来的更改,我们将用我们需要的数据来配置一张日志表:
create table dbo.cdc_capture_log (
cdc_capture_log_id int identity not null
, capture_instance nvarchar(50) not null
, start_time datetime not null
, min_lsn binary(10) not null
, max_lsn binary(10) not null
, end_time datetime null
, insert_count int not null default 0
, update_count int not null default 0
, delete_count int not null default 0
, status_code int not null default 0
)
日志表的要点是:
capture_instance是在表上启用CDC时指定的值。
start_time和end_time被记录来允许我们跟踪它复制CDC数据到我们的审计表中所花的时间。
min_lsn和max_lsn代表复制的日志序列编号(LSN)范围。LSN只识别事务日志中的变更。CDC记录每次更改的LSN。我们从上次SSIS程序包运行的max_lsn中获得min_lsn。CDC提供了sys.fn_cdc_get_max_lsn来检索最大的LSN。
- ››处理报错:java/lang/NoClassDefFoundError: java...
- ››处理反馈问题时的一点想法
- ››SSIS中的SQL Server目标,OLEDB目标以及SQL Serve...
- ››SSIS中的字符映射表转换组件
- ››SSIS中的DataReader源和目标
- ››SSIS中的原始文件源和目标
- ››SSIS 2008开始支持直接将Excel 2007文件作为数据源...
- ››SSIS 2008中的Data Profiler任务
- ››处理SQL Server表的数据插入到错误列中
- ››处理SSIS 2008中的变更数据捕获
- ››SSIS批量导入Excel文件
- ››SSIS循环导入Excel工作表
更多精彩
赞助商链接