变更数据捕获(CDC)是 SQL Server 原生的一个跟踪数据变化(插入、更新和删除)的功能。当前云数据库 SQL Server 控制台已支持该功能的开启和关闭,但仅针对库级别。如需开启表级别的 CDC 功能,可在控制台开启库级别 CDC 功能后,通过 SSMS 连接到实例,执行相关命令来开启。
本文为您介绍开启或关闭库级别以及表级别 CDC 功能的操作实践。
开启或关闭库级别 CDC 功能
1. 登录 SQL Server 控制台,在实例列表,单击实例 ID 或操作列的管理,进入实例管理页面。
2. 在实例管理页面,选择数据库管理页,选择目标数据库所在行,在操作列选择其他 > 开启/关闭变更数据捕获。

3. 在弹出的对话框,选择开启或关闭,单击确定。

开启或关闭表级别 CDC 功能
注意:
表级别的 CDC 开启后,可能会产生较大的数据占用空间。
表级别的 CDC 运行期间,如果使用 DDL 增加和删除字段,可能会导致 CDC 异常。
CDC 跟发布订阅使用的是同一个 logreader 进程,可能会产生冲突。
步骤1:开启库级别 CDC 功能
步骤2:通过 SSMS 连接到 SQL Server 实例
步骤3:通过命令开启或关闭表级别 CDC 功能
说明:
实际使用下面的命令时,请将变量替换为实际的信息:
[databasename]:替换为您的目标数据库名称,例如 [MyDB]。
N'表名':替换为要启用或禁用 CDC 的表名,例如 N'Orders'。
N'dbo_表名':替换为实际的表名,例如 N'dbo_Orders'。
示例:开启表的 CDC
use [databasename]goEXEC sys.sp_cdc_enable_table@source_schema = N'dbo',@source_name = N'表名',@role_name = null,@filegroup_name = N'Primary',@supports_net_changes = 1
示例:关闭表的 CDC
use [databasename]goEXECUTE sys.sp_cdc_disable_table@source_schema = N'dbo',@source_name = N'表名',@capture_instance = N'dbo_表名';