我已将 SQL 2019 企业版修补到安装在 2 节点 Windows 2022 群集上的 CU18,并配置了可用性组。我一直在调查当主节点重新启动时集群节点的异常和持久行为。
行为是当主节点按预期重新启动时,自动故障转移发生在先前的辅助副本(同步提交)上,但是,重新启动的节点上的 SQL 服务需要 10 到 30 分钟才能启动。Configuration Manager 中的引擎服务在此延迟期间保持“更改挂起”状态,然后当它最终启动时,必须手动启动代理。
在延迟期间,没有产生错误日志,任务管理器中没有sql server进程,事件查看器中没有相关日志。
我在互联网上做了很多研究,但还没有发现任何有用的东西。我现在正在使用 Process Monitor 来监控延迟期间发生的情况。我发现在sql引擎服务启动之前,没有sqlservr进程被Procmon捕获。然而,我还发现,在该延迟期间捕获的大多数 sql 进程都是具有各种结果的sqlceip进程。一些结果是“NAME NOT FOUND”(Operation = RegOpenKey and Path is given)或“PATH NOT FOUND”(Operation = Create File),或“BUFFER OVERFLOW”(Operation = RegQueryValue)等以及相当多的此类结果。我还在重新启动节点之前捕获了 SQL 进程,然后所有 sqlceip 结果都是“成功”
所以,我的猜测是,在延迟期间,sqlceip 正试图做一些事情,而不是由于某些原因而不是一只快乐的兔子,因此导致了延迟。现在,因为我不太清楚如何处理这些结果,而且因为我之前看到 SQL 遥测 (sqlceip) 在 SQL FCI 中导致问题,所以我正在考虑完全删除它。我尝试在启动程序中的错误报告和使用下禁用它,但我仍然在 Procmon 中有这些进程。
请提供有关如何调查/解决此问题的任何有用建议,我将不胜感激。正如我所说,如果我知道如何做,我正在考虑完全删除/禁用 sqlceip。
谢谢
来自为 SQL Server (CEIP) 配置使用和诊断数据收集: