CDC变更数据捕获

Posted lclc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CDC变更数据捕获相关的知识,希望对你有一定的参考价值。

CDC变更数据捕获

(2013-03-20 15:25:52)
  分类: SQL

SQL Server中记录数据变更的四个方法:触发器、Output子句、变更数据捕获(Change Data Capture )功能、同步更改跟踪。

这里记录下cdc:
变更数据捕获可记录应用于 SQL Server 表的插入、更新和删除活动。
对数据库中的某张表启用变更数据捕获,例子:
CREATE DATABASE test1
 
USE test1
CREATE TABLE [dbo].[WSTtestTBL](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [nvarchar](20) NULL
) ON [PRIMARY]
 
sp_cdc_enable_db --对当前数据库启用变更数据捕获
SELECT is_cdc_enabled FROM sys.databases WHERE name=‘test1‘ -- 对数据库启用变更数据捕获成功
 
sp_cdc_enable_table @source_schema=‘dbo‘, @source_name = ‘WSTtestTBL‘, @role_name = ‘cdc_role‘--源表标识为跟踪的表(条件:启动SQLServerAgent服务)
 
--EXECUTE sys.sp_cdc_help_change_data_capture --指定表的变更数据捕获配置信息
--    @source_schema = N‘dbo‘, 
--    @source_name = N‘WSTtestTBL‘;
--GO
 
insert into WSTtestTBL values(‘jiayiw‘)
delete from WSTtestTBL WHERE name =‘jiayiw‘
insert into WSTtestTBL values(‘wangshuting‘)
UPDATE WSTtestTBL SET name=‘zhangjie‘ WHERE NAME=‘wangshuting‘
--SELECT * FROM WSTtestTBL
select * from cdc.dbo_WSTtestTBL_CT 
 
--__$operation=2的情况,表示新增
--__$operation=3或者4,表示更新,3表示旧值,4表示新值
--__$operation=1的情况,表示删除
 

另外,还可以用cdc实现增量加载(SSIS)

以上是关于CDC变更数据捕获的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008 CDC增量变更捕获详解

.NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版

MYSQL 变更数据捕获 (CDC) - Azure 服务(Azure 数据工厂)

使用SQLServer 2008的CDC功能实现数据变更捕获

如何使用 Kafka Connect for Sybase ASE 数据库实现变更数据捕获 (CDC)?

CDC+ETL实现数据集成方案