我已使用以下步骤启用了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免费)。
如何调试此问题?
非常感谢你,提前! :)
以下是exec sys.sp_cdc_help_change_data_capture
的输出。 subscription_events 是我遇到麻烦的表。
以下是exec sys.sp_cdc_help_jobs;
的输出。
以下是select * from sys.dm_cdc_log_scan_sessions;
的输出。
以下是select * from sys.dm_cdc_errors;
正在运行select serverproperty('productversion')
会提供以下版本号:11.0.3401.0
。
答案 0 :(得分:8)
执行以下操作:
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1; EXEC sp_replflush;