- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL2008CDC变更数据捕获
Sql Srver 2008 CDC 变更数据捕获
概述
变更数据捕获( CDC )用于捕获应用到 SQL Server 表中的插入、更新和删除活动,并以易于使用的关系格式提供这些变更的详细信息。变更数据捕获所使用的更改表中包含镜像所跟踪源表列结构的列,同时还包含了解所发生的变更所需的元数据。
工作原理
变更数据捕获的更改数据源为 SQL 事务日志。
在将插入、更新和删除应用于跟踪的源表时,将会在日志中添加说明这些更改的项。
日志用作变更数据捕获进程的输入来源。
它会读取日志,并在跟踪的表的关联更改表中添加有关更改的信息。
将提供一些函数,以枚举在更改表中指定范围内发生的更改,并以筛选的结果集的形式返回该值。
通常,应用程序进程使用筛选的结果集在某种外部环境中更新源表示形式。
测试报告
更改表结构说明
当有操作更改了启用了CDC的表的数据时,捕获作业将操作数据和此操作的???息保存到当前表的更改表,更改表主要包括:
__$start_lsn 列标识为更改指定的提交日志序列号 (LSN)
__$seqval 对同一事务中进行的其他更改进行排序
__$update_mask 列是一个可变的位掩码,每个捕获列都有一个对应的定义位
__$operation 操作类型: 1 = 删除,2 = 插入,3 = 更新(前),4 = 更新(后)
以及捕捉的各个列
原始数据
源表(表名operator)
更改记录表
新增记录效果
如果当前操作是插入或删除,更改表将会增加一条记录,保存了插入或删除的数据
insert into operator(id,name,password) values(17,’lisi’,’lisimm’)
源表
更改记录表
删除记录效果
如果当前操作是插入或删除,更改表将会增加一条记录,保存了插入或删除的数据
delete form operator where id =16
源表
更改记录表
修改记录效果
如果当前操作是更改,更改表将会增加两个记录,一条保存更改前的数据,另一条保存更改后的数据,可以根据__$start_lsn,在关联表 cdc.lsn_time_mapping中查询出当前操作的事务ID,开始时间,结束时间以及事务开始日志序列号
update operator set name =’wangwu’ where id=17
源表
更改表
执行清理操作
exec sys.sp_cdc_cleanup_change_table
ST_Instance,
0x000000330000016D0004,
5000;
参数1:要清理的捕获??例
参数2:要保留的更改数据最低lsn,在此之前的数据都将被删除,此lsn可在cdc.lsn_time_mapping中查询
参数3:每笔事务删除的条数
源表
更改表
帮助手册
对数据库显式启用变更数据捕获
在跟踪对数据库中任何单个表进行的更改之前,必须为数据库显式启用变更数据捕获。这是使用 sys.sp_cdc_enable_db (Transact-SQL) 存储过程完成的。
对表显式启用变更数据捕获
为数据库启用变更数据捕获后,可以使用 sys.sp_cdc_enable_table (Transact-SQL) 存储过程将源表标识为跟踪的表。
创建一个关联的捕获实例以支持传播源表中的更改数据
为表启用变更数据捕获后,将创建一个关联的捕获实例以支持传播源表中的更改数据。捕获实例由一个更改表和最多两个查询函数组成。说明捕获实例配置详细信息的元数据保留在变更数据捕获元数据表 cdc.change_tables、cdc.index_columns 和 cdc.captured_columns 中。可以使用 sys.sp_cdc_help_change_data_capture (Transact-SQL) 存储过程来检索此信息。
与捕获实例关联的所有对象都是在启用变更数据捕获的数据库的变更数据捕获架构中创建的。捕获实例名称的要求是:必须是有效的对象名,并且在数据库捕获实例中是唯一的。默认情况下,此名称为源表的 架构名_表名。它的关联更改表???命名方式为:在捕获实例名称后面追加 _CT。用于查询所有更改的函数的命名方式为:在捕获实例名称后面追加 fn_cdc_get_all_changes_。如果将捕获实例配置为支持 net changes,则还会创建 net_changes 查询函数,并通过在捕获实例名称后面追加 fn_cdc_get_net_changes_ 来进行命名。
更改表
变更数据捕获更改表的前五列是元数据列。这些列提供与记录的更改有关的附加信息。其余列镜像源表中按名称标识的捕获列(通常还会按类型进行标识)。这些列保存从源表中收集的捕获列
您可能关注的文档
最近下载
- 沪教版 五年级下册美术 第8课 立体面具 课件(共16张PPT).ppt VIP
- 基于巴马小型猪的智能针灸机器人仿人针刺初步实验.docx VIP
- 砌体结构工程施工质量验收规范GB50203-2011.docx VIP
- 《大学物理》全套教学课件(共11章完整版).pptx
- 2019款东风标致508L-R83_汽车使用手册用户操作图示驾驶指南车主车辆说明书电子版.pdf
- 《产后并发症》课件.ppt VIP
- 2023款上汽通用别克昂科威Plus五座精英四驱豪华艾维亚版型_汽车使用手册用户驾驶指南车主车辆说明书电子版.pdf
- 心脏瓣膜病课件.ppt VIP
- S51816S518雨水口 标准图集.pdf
- 标准图集-07FG04-人防工程图集-钢筋混凝土门框墙.pdf
文档评论(0)