一、开启数据库cdc功能
1、查看是否开启cdc
SELECT name,is_cdc_enabled FROM sys.databases WHERE name = 'CDC_DB'
2、执行cdc
EXECUTE sys.sp_cdc_enable_db; #执行开始cdc
3、查询是否启用日志
SELECT is_cdc_enabled,CASE WHEN is_cdc_enabled=0 THEN 'CDC功能禁用' ELSE 'CDC功能启用' END 描述 FROM sys.databases WHERE NAME = 'ecis' # 数据库名
示例:
4、启动sqlserver代理
运行一下代码:
EXEC master.dbo.xp_servicecontrol N'QUERYSTATE', N'SQLSERVERAGENT'
开启表的cdc功能:
https://blog.csdn.net/m0_37693200/article/details/118762972
二、调试cdc命令
开启sqlserver cdc功能 create table classify ( id int primary key identity(1,1), -- 主键标识,从1开始,步长1增长 name nvarchar(20) not null -- not null 非空 ) -- 查看表的CDC状态 select name,is_tracked_by_cdc from sys.tables where name = 'demo'; -- 查看库的CDC状态 select is_cdc_enabled, name from sys.databases where name = 'schoolmasterreport_db'; -- 查看agent状态 EXEC master.dbo.xp_servicecontrol N'QUERYSTATE', N'SQLSERVERAGENT' -- 查看最大序列号 SELECT sys.fn_cdc_get_max_lsn(); -- 查看版本 SELECT @@VERSION; -- 对当前数据库启用 CDC USE schoolmasterreport_db GO EXECUTE sys.sp_cdc_enable_db; GO -- 对当前数据库禁用 CDC USE schoolmasterreport_db GO EXEC sys.sp_cdc_disable_db GO -- 禁用表CDC USE schoolmasterreport_db GO EXEC sys.sp_cdc_disable_table @source_schema = N'dbo', @source_name = N'demo', @capture_instance = N'dbo_demo' GO -- 开启表CDC USE schoolmasterreport_db GO EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'demo', @role_name = NULL GO