如果系统健康中有“ sql_exit_invoked”,这意味着什么?


9

我的一台SQL Server 2016 Standard服务器遇到问题。我有8个生产服务器,这是唯一一台随机崩溃而日志中没有任何痕迹的服务器。

我已启用system_health。我注意到我在系统健康状况中有一行是“ sql_exit_invoked”。

system_health_sql_exit_invoked

我正在尝试在该行上找到更多信息。这是什么意思?我在互联网上发现的唯一信息是,它在调用SQLExit()时发生,并且仅在SQL 2012以后才记录。(msdn网站上的链接)

sql_exit_description

所以我的问题是:我应该担心在日志中看到这个吗?我只能在有问题的服务器上找到它,而在其他7个服务器上都找不到。(所有都是SQL Server 2016 Standard版)

有人可以给我更多信息吗?


1
由于该事件仅在关机时生成,因此它可能已从其他服务器跟踪中撤消了?仅供参考,可能的值是FAST_SHUTDOWNNICE_SHUTDOWNORDERLY_SHUTDOWNSHUTDOWN_NOT_SET根据SELECT * FROM sys.dm_xe_map_values WHERE name = 'sql_shutdown_option';
丹Guzman的

Answers:


5

扩展事件的文档记录很少。

调试通道扩展事件的记录更加糟糕。

根据我的测试,您需要使用这些事件条目中的“ shutdown_option”值作为下一步查找的线索。这是我在有限测试中的意思:

  • ORDERLY_SHUTDOWN
    • 干净地重新启动或停止服务(使用配置管理器,服务管理单元等)
    • 干净地重启Windows(“开始”菜单->“关闭/重启”)
  • NICE_SHUTDOWN-使用SHUTDOWN;T-SQL命令停止服务
  • FAST_SHUTDOWN-使用SHUTDOWN WITH NOWAIT;T-SQL命令停止服务

请注意,我也尝试了以下操作,并且他们没有在扩展事件会话中注册任何东西

  • 按住电源按钮关闭Windows
  • 从任务管理器中杀死sqlservr.exe进程

我无法SHUTDOWN_NOT_SET触发该事件的版本,因此仍然是个谜。


在您的屏幕截图中,我可以看到ORDERLY_SHUTDOWN是您的方案中的选项。在那种情况下,由于这似乎意味着服务或Windows PC的干净关闭,因此我将查看Windows Event Viewer“系统”日志,以查看为什么重新启动计算机,或者什么服务/组件正在发出SHUTDOWN命令SQL Server服务。

祝好运!


谢谢,这对我有很大帮助!然后我知道在这种特殊情况下,我不必担心,因为操作系统可能已重新启动(我将与IT团队确认这一点)
Danielle Paquette-Harvey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.