目录
一、CDC简介
变更数据捕获(Change Data Capture ,简称 CDC):记录 SQL Server 表的插入、更新和删除操作。开启cdc的源表在插入、更新和删除操作时会插入数据到日志表中。cdc通过捕获进程将变更数据捕获到变更表中,通过cdc提供的查询函数,可以捕获这部分数据。
二、开启CDC的必要条件
1、sqlserver 2008 以上版本
2、需要开启sql代理服务
3、磁盘要有足够的空间,保存日志文件
4、表必须要有主键或者是唯一索引
三、开启数据库CDC
1、在需要开启CDC的数据库上执行脚本如下
if exists(select 1 from sys.databases where name='db_name' and is_cdc_enabled=0)
begin
exec sys.sp_cdc_enable_db
end
2、查询数据库的CDC开启状态
select is_cdc_enabled from sys.databases where name='db_name'
查询结果为“1”,表示开启成功。
四、开启表CDC
注意:表中必须有主键或者唯一索引
1、添加数据文件组和文件
选中数据库,右击属性。
2、执行以下脚本,开启某个表的CDC
注意:CDC是数据库文件组的名称,table_name改为对应表名。
IF EXISTS(SELECT 1 FROM sys.tables WHERE name='table_name' AND is_tracked_by_cdc = 0)
BEGIN
EXEC sys.sp_cdc_enable_table
@source_schema = 'dbo', -- source_schema
@source_nam