Я тестировал функцию сбора данных об изменениях в SQL Server 2008 для таблицы, когда она застряла.
- Для CDC включена только одна таблица.
- После внесения различных изменений DDL в таблицу, чтобы проверить реакцию CDC, я отбросил таблицу.
- Ранее в моем тестировании удаление таблицы также приводило к тому, что CDC отбрасывает таблицу CT и любые метаданные, относящиеся к удаленной таблице.
- Похоже, что последний оператор отбрасывания никогда не был обнаружен CDC, поскольку таблица CT все еще существует, и для нее существует запись в таблице cdc.change_tables
- Я не могу отключить CDC для таблицы или включить CDC для вновь созданной таблицы с тем же именем, поскольку запись cdc.change_table существует и связана с несуществующим идентификатором объекта в метаданных SQL Server.
- Я попытался отключить CDC для базы данных, но команда выполнялась в течение 1 часа без ответа, прежде чем я ее остановил.
- При попытке отключить CDC для базы данных список заданий для агента SQL Server перестал отвечать (время ожидания запроса блокировки) в Management Studio. После отмены команды отключения CDC Агент по-прежнему не отвечал.
- Я попытался перезапустить службу агента. Он успешно остановился, но завис во время (казалось бы, финальной стадии) запуска. Теперь сервис находится в состоянии «Запуск».
Я перезагружаю сервер, чтобы попытаться снова запустить агент.
Я могу удалить и воссоздать свою базу данных, так как она все еще находится в стадии разработки и не содержит никаких данных, но есть ли другой способ исправить проблему? Все, что я прочитал до сих пор, указывает на то, что я не должен связываться напрямую ни с одним из ресурсов CDC. Есть ли реальная причина, по которой мне не следует просто удалять запись cdc.change_tables и связанную с ней таблицу CT?
Кто-нибудь испытывал подобные проблемы с CDC, которые указывали бы на нестабильность в системе?
РЕДАКТИРОВАТЬ: После того, как агент снова запустился, я попытался вручную удалить запись change_tables и таблицу CT, но когда я попытался включить таблицу, произошел ряд ошибок, связанных с метаданными CDC. Однако мне удалось успешно отключить CDC для всей базы данных, а затем снова включить его. Это, конечно, отбросило все ресурсы, связанные с функцией CDC.