Sql server 开启CDC

2022-05-31 00:00:00 数据库 代码 启用 复制 禁用

sql server agent 需要提前开启

1. 查看库表是否启动 CDC

-- 查看数据库是否启用cdc
SELECT name,is_cdc_enabled FROM sys.databases WHERE is_cdc_enabled = 1;

-- 查看当前数据库表是否启用cdc
SELECT name,is_tracked_by_cdc FROM sys.tables WHERE is_tracked_by_cdc = 1;
复制代码

2. 数据库启用和禁用 CDC

-- 对当前数据库启用 CDC
USE mydb 
GO
EXECUTE sys.sp_cdc_enable_db;
GO
-- 对当前数据库禁用 CDC
USE mydb  
GO  
EXEC sys.sp_cdc_disable_db  
GO  
复制代码

3. 数据库表启用和禁用 CDC

-- 启用
USE MyDB  
GO  
EXEC sys.sp_cdc_enable_table  
@source_schema = N'dbo',  
@source_name   = N'MyTable',  
@role_name     = NULL,  
@supports_net_changes = 1  
GO 
-- 禁用
USE MyDB  
GO  
EXEC sys.sp_cdc_disable_table  
@source_schema = N'dbo',  
@source_name   = N'MyTable',  
@capture_instance = N'dbo_MyTable'  
GO 
复制代码

4. 查看表 CDC 功能是否启用

SELECT  name ,
        is_tracked_by_cdc ,
        CASE WHEN is_tracked_by_cdc = 0 THEN 'CDC功能禁用'
             ELSE 'CDC功能启用'
        END 描述
FROM    sys.tables;
复制代码

5.验证

cdc机制成功开启后,会自动创建库以及dbo_<table_name>_CT,开启CDC的数据表 一旦有操作,dbo_<table_name>_CT会增加一笔记录

相关文章