怎么开启
- 执行sql
- 1、创建cdc
- 2.如上执行完毕之后,会在<database_name>数据库下的“系统表”中创建如下六个系统表:
- 3.验证SQLServer库级别CDC是否启用
- 4.启用SQLServer表级别CDC功能(针对某一张表)
- 5、验证SQLServer表级别是否启用
- 6、关闭表的CDC功能
- 7、禁用所有CDC功能
- 最终一起的sql
执行sql
1、创建cdc
USE <database_name>
GO
EXEC sys.sp_cdc_enable_db
GO
如图:
2.如上执行完毕之后,会在<database_name>数据库下的“系统表”中创建如下六个系统表:
dbo.systranschemas
cdc.change_tables
cdc.index_columns
cdc.captured_columns
cdc.lsn_time_mapping
cdc.ddl_history
3.验证SQLServer库级别CDC是否启用
select is_cdc_enabled from sys.databases where name='<database_name>';
4.启用SQLServer表级别CDC功能(针对某一张表)
–注意:表中必须有主键或者唯一索引
其中@source_name = ‘t_wx_source’,t_wx_source是某一个表名
EXEC sys.sp_cdc_disable_table @source_schema = 'dbo', @source_name = 't_wx_source', @capture_instance = 'all';
注意:
本步骤完成之后,会在database_name数据库下的“系统表”中创建一个名为"table_name_CT"的系统表,一个业务表对应一个此系统表。
5、验证SQLServer表级别是否启用
SELECT is_tracked_by_cdc FROM sys.tables WHERE name='t_wx_source';
select name, is_tracked_by_cdc
from sys.tables where is_tracked_by_cdc = '1';
6、关闭表的CDC功能
EXEC sys.sp_cdc_disable_table @source_schema = 'dbo', @source_name = 't_wx_source', @capture_instance = 'all';
7、禁用所有CDC功能
EXEC sys.sp_cdc_disable_db;
最终一起的sql
用Navicat不要用dbeaver,不然第一句会出错的
USE TestDataworks
GO
EXEC sys.sp_cdc_enable_db
GO
select is_cdc_enabled from sys.databases where name='TestDataworks';
--注意:表中必须有主键或者唯一索引
EXEC sys.sp_cdc_enable_table @source_schema = 'dbo', @source_name = 't_wx_source', @role_name = null;
SELECT is_tracked_by_cdc FROM sys.tables WHERE name='t_wx_source';
select name, is_tracked_by_cdc
from sys.tables where is_tracked_by_cdc = '1';