8

我已使用以下步骤启用 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_capturesubscription_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.

4

1 回答 1

15

请执行下列操作:

  1. 停止捕获作业;
  2. EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1; EXEC sp_replflush;
  3. 关闭执行这些命令的查询窗口;
  4. 开始捕获工作;
  5. 检查 sys.dm_cdc_errors 表中的新行并检查更改是否开始可见。
于 2014-05-19T20:52:28.880 回答