Kri*_*yer 7 sql-server change-data-capture sql-server-2014
我们遇到了 CDC 问题,即捕获作业失败并且不会自行重启。这是在 DEV 环境中,所以没有害处,但有没有人看到这些错误或知道 CDC 到底出了什么问题?
SQL 2014 EE 12.0.5540 - 带有 SSISDB 的 2 节点 AG
过程或函数 sp_batchinsert_1663605265 指定的参数过多。更多信息查询sys.dm_cdc_errors动态管理视图
日志扫描进程未能从日志序列号 (LSN) {00002d0d:0000f11f:0002} 构建复制命令。备份发布数据库并联系客户支持服务。想要查询更多的信息
日志扫描进程在处理日志记录时失败。参考当前会话中以前的错误以确定原因并纠正任何相关问题。更多信息查询sys.dm_cdc_errors动态管理视图
我们尝试使用sp_cdc_drop_jobabd删除并重新创建捕获作业sp_cdc_add_job。我们还尝试故障转移到另一个节点以及服务器/服务重新启动。似乎没有什么能让 CDC 自行重启。
我们在周五通过 AG 滚动补丁应用了 CU4,因此我们处于最新最好的状态。在我们修补并故障转移后,这个问题立即出现。
添加日志查询结果
看起来 CU2+SP4 (12.0.5540) 更改了生成的底层 _CT 系统表的结构。它添加了列[__$command_id] int null。
当您就地升级到新的 CU 时,捕获作业将开始失败或进入“重试之间...”,并出现以下错误:
删除并重新创建捕获作业不起作用(使用 cdc_add_job)。我不得不删除捕获代理 CDC 作业,禁用表上的 CDC (sp_cdc_disable_table),然后重新启用 CDC (sp_cdc_enable_table),这会重新添加作业并成功启动作业并开始收集。
问题是,在删除并重新启用 CDC 后,您将丢失先前存在的 _CT 表及其所有数据。
我发现的有关 CU4 更改 CDC 的唯一信息来自 MS:https : //support.microsoft.com/en-us/help/3030352
它说他们修复了排序问题,但没有列出对 CDC 系统表的任何结构更改。
更新 1:我已经就这个问题向 MS 开了一个付费支持案例。还有一个为它打开的连接项:https : //connect.microsoft.com/SQLServer/Feedback/Details/3130381
更新 2:每个 MS,sp_vupgrade_replication在修补到 CU4 后使用该命令将允许捕获代理作业成功启动。它仍然没有解决在命令运行之前失败的作业。它也没有解决这个没有记录在任何地方的添加列。仍在等待最终判决结果如何。
更新 3:MS 已正式发布到他们的博客并认为这是一个问题:https : //blogs.msdn.microsoft.com/sql_server_team/cdc-functionality-may-break-after-upgrading-to-the-latest-cu -for-sql-server-2012-2014-and-2016/
目前还没有关于他们是否会重新发布 CU4 补丁以不需要手动干预来重新启动 CDC 作业或正式记录列更改的消息。
| 归档时间: |
|
| 查看次数: |
4108 次 |
| 最近记录: |