SQL Server CDC(变更数据捕获) 配置和使用

一.配置

  1. 增加Database File
    1. 添加FileGroup

  1. 添加File

  1. 数据库开启和关闭

-- 数据库开启

ALTER AUTHORIZATION ON DATABASE::AdventureWorks TO [sa]

USEAdventureWorks

GO

exec sys.sp_cdc_enable_db

GO

-- 数据库关闭

USEAdventureWorks

GO

exec sys.sp_cdc_disable_db

GO

 

-- 查看所有开启数据库

SELECTname,is_cdc_enabled FROMsys.databasesWHEREis_cdc_enabled =1;

  1. 数据表开启和关闭

--开启

IFEXISTS(SELECT1 FROMsys.tablesWHEREname='Person'ANDis_tracked_by_cdc =0)

BEGIN

    EXEC sys.sp_cdc_enable_table

        @source_schema ='Person',-- source_schema

        @source_name ='Person',-- table_name

        @capture_instance =NULL,-- capture_instance

        @supports_net_changes =1,-- supports_net_changes

        @role_name =NULL,-- role_name

        @index_name =NULL,-- index_name

        @captured_column_list =NULL,-- captured_column_list

        @filegroup_name ='CDC'-- filegroup_name

END

 

--关闭

   EXEC sys.sp_cdc_disable_table

        @source_schema ='Person',-- source_schema

        @source_name =' Person',-- table_name

        @capture_instance ='capture_instance'-- capture_instance

 

二.SSIS使用CDC

1.初始化

如下图,需要先开发初始化的包,指定CDC 增量的开始;

在CDC Control Task Start中配置如下图,需要注意的点:

  • CDC Control Opertation:Mark Initial load Start(标记为开始)
  • Table to use for storing state:点击(new)新建cdc_State表用于记录同步更新点;

在 CDC Control End 中配置如下图,需要注意的点:

  • CDC control operation:Mark Initial load end

2.增量获取

通过运行以上初始化的包,当前表就完成了抓取点的增量标记,接下来就可以开发增量包,完成数据的实时增量抓取,如下图:

1>CDC Control Task Start

如下图:通过配置CDC Control operation:Get Processing range 操作来获取数据的增量数据;

2>Data Flow Task

如下图:设置在Data Flow Task中通过CDC Source组件和CDC Split组件实现数据捕获。

  1. CDC Source:如下图,通过配置CDC Enable table实现连接上开启CDC的表。通过配置CDC Processing Mode为Net来获取数据。

  1. CDC Spliter实现将数据进行拆分成增删改数据,然后导入的目标库中;

3>CDC Control End

如下图:通过配置CDC Control poertaion:Mark processed range 操作来标记结束抓取更新点;

3.发布为JOB

1>.指定增量同步的包

2>.设计同步的Schedule:设置为每10S中同步一次;

注意:这里还是通过跑批的方式设置计划任务,主动去轮询获取增量数据,本质上并没有做到实时获取变动,只能做到伪实时。

SQL Server 的CDC如果使用微软的SSIS进行连接,更适合用的场景为:

需要记录某张表的所有变动记录(类似触发器)

Demo地址:SQLServerCDCSSISDemo-SQLServer文档类资源-CSDN下载


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值