二、sqlserver开启cdc功能


一、开启数据库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

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM