浅析SQL2008的Change Data Capture功能
在常见的企业数据平台管理中有一项任务是一直困扰SQL Server DBA们的,这就是对数据更新的监控。很多数据应用都需要捕获对业务数据表的更新。笔者见过几种解决方案: 1、在数据表中加入特殊的标志列; 其实第1种和第2中方案都不好,因为第1种方法需要在应用程序编码的时候尤为小心,如果有一段数据访问逻辑忘了更新标志位就会导致遗漏某些数据更新,而第2种方法对性能影响过于明显,因为触发器的性能开销是众所周知的。第3种方法其实属于一种叫做Log Audit的方案体系。因为SQL Server同其他关系型数据库一样,所有数据操作都会在日志中记录,因此通过分析日志就可以获得完整的数据操作历史。SQL Server其实早就有内部的API可供ISV开发者中Log Audit的方案,不过微软对这套API控制比较严格,只有签署了一堆协议的核心级合作伙伴才能了解这套API。 因此,现对业务数据更新的跟踪在SQL Server平台上一直是一件非常头疼的事情,用户需要在投入大量开发精力和投入额外采购成本之间做出选择。幸运的事,微软终于在SQL Server 2008中提供了一套半公开的Log Audit机制,就是我们所说的Change Data Capture,我们后面简称CDC。 CDC的工作原理 我们前面说过CDC是通过分析日志获得数据操作历史信息的,那么CDC的工作原理到底是怎么样的呢?下图可以非常贴切地说明这个功能的原理: |
- select into的用法
- sql-server – LINQ to SQL Take w / o Skip导致多个SQL语句
- RESTORE DATABASE命令还原SQLServer 2005 数据库
- SqlServer高版本数据备份还原到低版本
- The DBMS returned an unspecified error.
- linux下Vps自动备份web和mysql数据库的脚本
- 在SQL Server中将数据类型Varchar更改为Varbinary(max)
- sql-server-2008 – 为什么表的数据空间占用原始数据大小的
- sql-server-2008 – 如何在Sql Server 2008上终止/终止所有
- sql-server-2008 – Sql Server 2008 Reporting Services: