我的数据库启用了CDC,它在几个表上都工作得很好。有一天(不知道为什么)它停止了工作:没有记录新的变化。
然后我继续禁用CDC,如下所示:
exec sys.sp_cdc_disable_db然后我重新启用了它,如下所示:
exec sys.sp_cdc_enable_db
GO
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo'
, @source_name = N'resource'
, @role_name = NULL
, @capture_instance = N'dbo_resource'
, @supports_net_changes = 1
, @captured_column_list = N'Id,Name,Status'
GO 这些命令运行得很好,但并不能解决我的问题。
我已经检查并看到CDC所需的所有表都已创建,但浏览代理作业时,我只看到已创建清理作业,缺少捕获作业。
我怎么才能修复它?
发布于 2016-12-02 23:29:01
我不知道捕获作业发生了什么(SQL代理作业通常不会丢失),但以下是如何找回它的方法。
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO需要注意的一点是,CDC捕获代理和复制日志读取器代理是一回事。从字面上看。因此,如果最近有人向您的数据库添加了复制,则您的捕获作业可能已被复制日志读取器作业替换。您可以通过sys.dm_cdc_log_scan_sessions视图查看发生了哪些cdc日志扫描会话。
https://stackoverflow.com/questions/40922497
复制相似问题