我们正在SQL Server上使用Change Data Capture捕获数据库的更改。我们使用以下方式启用该功能:
exec sys.sp_cdc_enable_db
要实现此目的,并且要求我们撤回记录的更改,则要求SQL Server代理正在运行。
在过去的一两个星期中,我经常收到有关更改未出现在目的地的报告。经过调查,我发现SQL Server代理尚未运行和/或不再为数据库启用CDC。
我已经解释说,如果SQL Server代理意外停止工作,它将设置为自动重新启动。这向我表明,将其关闭的唯一原因是它已手动关闭。
关于数据库上的CDC。我看不到数据库的这种“属性”本身已关闭。我只能想象这是手动关闭或覆盖。
我需要提供一个原因列表,说明为什么数据库管理员会关闭其中任何一个。我认为,出于真正的原因,为了执行某种形式的管理任务,必须禁用其中任何一个。可能有什么理由将其关闭?
答案 0 :(得分:0)
从Jeroen的评论出发,我调查了日志。
我发现系统关闭时SQL Server代理已关闭。将服务设置为自动启动可以解决此问题。
由于SQL Server 2017中的错误,已禁用CDC作业。安装最新的累积更新似乎已解决此问题。