关于CDC功能的答疑

昨天在讲解SQL Server BI新特性的时候,提到了SQL Server 2008数据库引擎的一个增强,就是CDC(Change Data Capture):变更数据捕获。

看起来大家对这个功能都挺感兴趣,不少朋友提问。我整理一下有关的关键点

1. CDC的目的是什么?

CDC就是极大地方便了我们获取某个表数据更新情况的一个机制。它通过一个独立的进程,异步读取日志文件,而不是触发器的方式工作。而且它的数据是会持久化保存到一个系统表的。

image

2. CDC是不是SQL Server 2008特有的功能,对别的数据库或者早期版本是否起作用?

CDC是SQL Server 2008特有的功能,而且是企业版特有的功能。开发版也有该功能,但仅用于测试场合。

 

3. CDC读取日志,那么如何日志被截断了会怎么样?

如果某部分日志,CDC的进程还没有读取,那么在截断日志时就会忽略这个部分。

捕获进程是一个独立的,它随着代理服务启动而启动。两次扫描之间间隔5分钟。

 

4. 系统表中的数据是否会永久存在?

不会,它会被保留3天。会有一个清理的作业,每天晚上2点进行扫描。

 

最后,补充一点的是,CDC功能依赖Agent服务,因为它有两个操作都是通过作业来启动的。

posted @ 2009-05-16 17:22  陈希章  阅读(3290)  评论(3编辑  收藏  举报