Я включил 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, созданной для этой конкретной таблицы.
Почему эта одна таблица не собирает данные, даже если другие таблицы?
Я читал в Интернете, что, возможно, это как-то связано с тем, что журнал транзакций становится слишком большим, но у меня все еще остается много места на диске (свободно ~ 2 ТБ).
Что я могу сделать, чтобы отладить эту проблему?
Огромное спасибо заранее! :)
Изменить 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
.
sys.sp_cdc_help_change_data_capture
? Это нормально? - person Endrju   schedule 19.05.2014exec sys.sp_cdc_change_data_capture
и увидел там свою новую таблицу наряду с другими таблицами, которые функционируют должным образом. Я добавлю вывод этой строки в качестве редактирования моего вопроса. - person FooBar   schedule 19.05.2014exec sp_cdc_help_jobs
- person Endrju   schedule 19.05.2014sys.dm_cdc_log_scan_sessions
,sys.dm_repl_traninfo
иsys.dm_cdc_errors
. Пожалуйста, проверьте их тоже. Особенно первый с end_time NULL. - person Endrju   schedule 19.05.2014sys.dm_cdc_log_scan_sessions
иsys.dm_cdc_errors
. Таблицаsys.dm_repl_traninfo
огромна, и я не знал, какую информацию искать. Я никогда раньше не пользовался этими таблицами, так что спасибо, что упомянули о них; что я здесь ищу? - person FooBar   schedule 19.05.2014select serverproperty('productversion')
). Мы могли бы быть свидетелями ошибки здесь. Я думаю, что краткосрочное решение — перезапустить задание захвата, но в долгосрочной перспективе может потребоваться установка накопительного обновления. - person Endrju   schedule 19.05.2014select serverproperty('productversion')
предоставляет следующий номер версии:11.0.3401.0
. - person FooBar   schedule 19.05.2014EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1; EXEC sp_replflush
; 3) закройте это окно запроса, в котором вы выполняли эти команды; 4) запустить задание захвата; 5) проверьте таблицу sys.dm_cdc_errors на наличие новых строк и проверьте, стали ли видны изменения. - person Endrju   schedule 19.05.2014cdc.dbo_subscription_events_CT
! Большое спасибо! :) Значит, это известная ошибка SQL Server? Кроме того, если вы добавите это как ответ, я отмечу его как таковой. - person FooBar   schedule 20.05.2014sys.dm_cdc_errors
пуста. - person FooBar   schedule 20.05.2014