我已启用 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;
我可以看到在系统表中创建了一个 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
。
执行以下操作:
停止捕获作业;
RunEXEC sp_repldone @xactid = NULL,@xact_segno = NULL,@numtrans = 0,@time = 0,@reset = 1;EXEC sp_replflush;
关闭您在其中执行这些命令的查询窗口;
启动捕获作业;
检查 sys.dm_cdc_errors 表中的新行,并检查更改是否开始可见。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(48条)