暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
SqlServer CDC技术总结
4013
3页
42次
2019-07-18
免费下载
使用
SqlServer 2008
CDC
技术研究
1.CDC
简介
CDC(Change Data Capture变更数据捕获)主要原理为,通过对事务日志的
异步读取,记录 DML 操作的发生时间、类型和实际影响的数据变化,然后将这些数据记
录到启用 CDC 时自动创建的表中。通过 cdc 相关的存储过程,可以获取详细的数据变
化情况。
由于数据变化是异步读取的,因此对整体性能的影响不大,远小于通过
Trigger
实现的数据变化记录。
适用环境:
仅在 SQLServer2008(含)以后的企业版、开发版和评估版中可用。
常见场景:
数据仓库或数据中心的建设过程中,通过这种技术,可以简化从业务数据库导入数据
ETL)的复杂度
以及降低对生产系统的性能影响
使用方法
使用方法较为简单,网上很多例子,此处略过。
2.
缺点总结
优点
1)可以对单个表进行监控,也可以对单个表的某些字段进行监控,使用较为灵活;
2)对用户修改以前的历史记录可以有效捕捉,因此可以解决没有时间戳的变更问题;
3)使用这种技术,就可以不用再使用 triger 这种低效高耗的技术;
4)是一种很好的向数据仓库或数据中心增量加载数据的好方法。
缺点:
1CDC 激活会显著增加日志文件的读操作。
2CDC 激活后更新跟踪表会产生额外的写入,并消耗存储空间。
3CDC 激活后,原数据表的聚簇索引尺寸会影响到 CDC 产生的 IO 数据量,而原始数据表上
的非聚簇索引则不会。
4CDC 激活后,被选定进行更新跟踪的列键值属性同样会影响到 CDC 产生的 IO 数据量和存
储空间。
5)如 CDC 的进程还没有读取,那么在截断日志时就会忽略这个部分(截断日
志或收缩日志都会对 CDC 有一定影响,需要考虑日志维护策略)
官方建议:
微软建议 CDC 结合快照隔离级别使用,可以避免读取变更数据与变更数据写入时的
读写阻塞需要注意:快照隔离级别会有额外的开销,特别是 Te m pdb( 所有的数据更改
都会被版本化存到 tempdb)。启 CDC 之后会新增一个叫 CDC Schema 和一系列
的系统表、SP View。官方建议不要直接查询系统表而是使用对应的系统 SP/FN
获取 CDC 数据。
1 capture 作业是用于扫描日志文件,把变更记录写到变更表中。调用
sp_MScdc_capture_job 来实现,可以根据当前库的实际事务吞吐量来设置扫描参数
和扫描间隔,使得在性能开销和跟踪需求间达到合理平衡。
2cleanup 作业是清理变更变表中的数据,默认三天的数据,确 间隔是非常重
要的
of 3
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜