sqlserver开启flinkcdc

1、开启具体数据库实例的CDC

USE yourdatabase;
GO
EXEC sys.sp_cdc_enable_db;

查看数据库是否开启cdc配置
select *,is_cdc_enabled from sys.databases

2、开启表级别 CDC

use my_database
GO
exec sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name='my_tables',
@role_name=NULL,
@filegroup_name=NULL
GO

查看表是否开启cdc

select name,is_tracked_by_cdc from sys.tables where name in 
(
'tables1',
'tables2'
)

3、需要注意的先决条件

3.1查看是否开启sqlserver 代理

SELECT * FROM sys.dm_server_services

未开启代理无法使用CDC捕获功能,需要开启

3.2 设置事务隔离机制为READ_COMMITTED_SNAPSHOT

设置数据库为 READ COMMITTED SNAPSHOT

ALTER DATABASE YourDatabase SET READ_COMMITTED_SNAPSHOT ON;
GO

设置数据库为 ALLOW_SNAPSHOT_ISOLATION

ALTER DATABASE YourDatabase SET ALLOW_SNAPSHOT_ISOLATION ON;
GO

检查数据库的隔离级别状态

SELECT
    name AS DatabaseName,
    is_read_committed_snapshot_on,
    CASE
        WHEN snapshot_isolation_state = 0 THEN 'OFF'
        WHEN snapshot_isolation_state = 1 THEN 'ON'
        WHEN snapshot_isolation_state = 2 THEN 'IN_TRANSITION_TO_ON'
        WHEN snapshot_isolation_state = 3 THEN 'IN_TRANSITION_TO_OFF'
        ELSE 'UNKNOWN'
    END AS SnapshotIsolationStateDesc
FROM
    sys.databases
也可以用下面的sql
SELECT
    name AS DatabaseName,
    is_read_committed_snapshot_on,
    snapshot_isolation_state,
    snapshot_isolation_state_desc
FROM
    sys.databases
WHERE
    name = 'my_database';  -- 替换为你的数据库名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值