文档中心>实践教程>云数据库 SQL Server>变更数据捕获功能的开启和关闭

变更数据捕获功能的开启和关闭

最近更新时间:2025-06-16 10:33:22

我的收藏
变更数据捕获(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 功能

操作可参考 开启库级别 CDC 功能

步骤2:通过 SSMS 连接到 SQL Server 实例

步骤3:通过命令开启或关闭表级别 CDC 功能

说明:
实际使用下面的命令时,请将变量替换为实际的信息:
[databasename]:替换为您的目标数据库名称,例如 [MyDB]。
N'表名':替换为要启用或禁用 CDC 的表名,例如 N'Orders'。
N'dbo_表名':替换为实际的表名,例如 N'dbo_Orders'。

示例:开启表的 CDC

use [databasename]
go
EXEC 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]
go
EXECUTE sys.sp_cdc_disable_table
@source_schema = N'dbo',
@source_name = N'表名',
@capture_instance = N'dbo_表名';