SQL server开启变更数据捕获(CDC)

一、CDC简介

变更数据捕获(Change Data Capture ,简称 CDC):记录 SQL Server 表的插入、更新和删除操作。开启cdc的源表在插入、更新和删除操作时会插入数据到日志表中。cdc通过捕获进程将变更数据捕获到变更表中,通过cdc提供的查询函数,可以捕获这部分数据。

二、开启CDC的必要条件

1、sqlserver 2008 以上版本

2、需要开启sql代理服务

3、磁盘要有足够的空间,保存日志文件

4、表必须要有主键或者是唯一索引

三、开启数据库CDC步骤

step1 开启数据库代理

SQL Server工具里启动代理:

服务里开启自动启动:

step2 开启数据库CDC脚本

sql 复制代码
IF EXISTS (  SELECT 1 
             FROM master.dbo.sysprocesses 
             WHERE program_name = N'SQLAgent - Generic Refresher')
BEGIN
    SELECT @@SERVERNAME AS 'InstanceName', 1 AS 'SQLServerAgentRunning'
END
ELSE 
BEGIN
    SELECT @@SERVERNAME AS 'InstanceName', 0 AS 'SQLServerAgentRunning'
END

-- 查看数据库CDC开启状态
SELECT name, is_cdc_enabled FROM sys.databases WHERE is_cdc_enabled = 1;

-- 开启数据库CDC
USE BAFY;
EXECUTE sys.sp_cdc_enable_db;

-- 开启表CDC
  EXEC sys.sp_cdc_enable_table  
    @source_schema = 'bzk',  
    @source_name = 'YLZL_BZFY_GYHSDC',  
    @role_name = null; 

  EXEC sys.sp_cdc_enable_table  
    @source_schema = 'bzk',  
    @source_name = 'YLZL_BZFY_JCXLNJZL',  
    @role_name = null; 

  EXEC sys.sp_cdc_enable_table  
    @source_schema = 'bzk',  
    @source_name = 'YLZL_BZFY_JXYXY',  
    @role_name = null; 

  EXEC sys.sp_cdc_enable_table  
    @source_schema = 'bzk',  
    @source_name = 'YLZL_BZFY_SXHDCX',  
    @role_name = null; 

  EXEC sys.sp_cdc_enable_table  
    @source_schema = 'bzk',  
    @source_name = 'YLZL_BZFY_YZXCB',  
    @role_name = null; 

-- 查看表cdc开启状态
SELECT name, is_tracked_by_cdc FROM sys.tables WHERE name like 'YLZL_%';
相关推荐
韩立学长8 分钟前
基于Springboot的旧物公益捐赠管理系统3726v22v(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
苦学编程的谢1 小时前
Redis_4_常见命令(完)+认识数据类型和编码方式
数据库·redis·缓存
小光学长1 小时前
基于Vue的儿童手工创意店管理系统as8celp7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
小光学长1 小时前
基于Vue的地铁综合服务管理系统7949eg04(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
Yeats_Liao1 小时前
时序数据库系列(二):InfluxDB安装配置从零搭建
数据库·后端·时序数据库
Yeats_Liao1 小时前
时序数据库系列(一):InfluxDB入门指南核心概念详解
数据库·后端·时序数据库·db
betazhou2 小时前
Oracle ADG ,DGBroker管理,异常断电重启主备库的状态
数据库·oracle·goldengate·dgbroker
岁岁岁平安2 小时前
本机 MongoDB 注册系统服务、启用security认证
数据库·python·mongodb
007php0072 小时前
某游戏互联网大厂Java面试深度解析:Java基础与性能优化(一)
java·数据库·面试·职场和发展·性能优化·golang·php
数据库生产实战3 小时前
Oracle RAC灾备环境UNDO表空间管理终极指南:解决备库修改难题与性能优化实战
数据库·oracle·性能优化