CDC is enabled, but cdc.dbo<table-name>_CT table is not being populated

FooBar picture FooBar · May 19, 2014 · Viewed 11.1k times · Source

I have enabled CDC using the following steps:

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;

I can see that a CT table has been created in the System Tables; SQL Server Agent is on, and I can see the cdc.db_name_capture job has been created and is running.

However, even though the table_name table is being populated, I never see anything in the CT table. I have other tables that have CDC enabled for them in the same database which are being updated, and CDC is capturing data for them and storing it in the CT table created for that specific table.

Why would this one table not be capturing data even though other tables are?

I read online that perhaps it has something to do with the transaction log becoming too large, but I still have plenty of drive space left (~2TB free).

What can I do to debug this issue?

Thank you so much, in advance! :)

Edit 1

Here is the output of exec sys.sp_cdc_help_change_data_capture. subscription_events is the table that I am having troubles with.

enter image description here

Edit 2

Here is the output of exec sys.sp_cdc_help_jobs;.

enter image description here

Edit 3

Here is the output of select * from sys.dm_cdc_log_scan_sessions;.

enter image description here

Here is the output of select * from sys.dm_cdc_errors;

enter image description here

Edit 4

Running select serverproperty('productversion') provides the following version number: 11.0.3401.0.

Answer

Endrju picture Endrju · May 19, 2014

Do the following:

  1. Stop the capture job;
  2. Run EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1; EXEC sp_replflush;
  3. Close this query window in which you executed these commands;
  4. Start the capture job;
  5. Check the sys.dm_cdc_errors table for new rows and check if the changes starting to be visible.