我已使用以下步骤启用 CDC:
exec sys.sp_cdc_enable_db;
exec sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'table_name',
@role_name = N'CDC_Access',
@supports_net_changes = 1;
我可以看到在System Tables中创建了一个 CT 表;SQL Server 代理已打开,我可以看到cdc.db_name_capture作业已创建并正在运行。
但是,即使正在填充table_name表,我在 CT 表中也看不到任何内容。我在正在更新的同一个数据库中有为它们启用了 CDC 的其他表,以及 CDC正在为它们捕获数据并将其存储在为该特定表创建的 CT 表中。
为什么即使其他表在捕获数据,这个表也不会捕获数据?
我在网上读到这可能与事务日志变得太大有关,但我仍然有足够的驱动器空间(约 2TB 可用)。
我可以做些什么来调试这个问题?
非常感谢,提前!:)
编辑 1
这是 的输出exec sys.sp_cdc_help_change_data_capture
。 subscription_events是我遇到问题的表。
编辑 2
这是 的输出exec sys.sp_cdc_help_jobs;
。
编辑 3
这是 的输出select * from sys.dm_cdc_log_scan_sessions;
。
这是输出select * from sys.dm_cdc_errors;
编辑 4
运行select serverproperty('productversion')
提供以下版本号:11.0.3401.0
.