WEB开发网
开发学院数据库MSSQL Server 处理SSIS 2008中的变更数据捕获 阅读

处理SSIS 2008中的变更数据捕获

 2009-06-16 10:30:13 来源:WEB开发网   
核心提示: 要得到更详细的信息,您可以参阅联机帮助,处理SSIS 2008中的变更数据捕获(3),找到sys.sp_cdc_enable_db和sys.sp_cdc_enable_table存储过程, 确保SQL代理正在运行;CDC创建两个SQL代理任务;其中,CDC记录每次更改的LSN,我们从上次S

要得到更详细的信息,您可以参阅联机帮助,找到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。

上一页  1 2 3 4 5 6  下一页

Tags:处理 SSIS 变更

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接