系统运行状况中有“sql_exit_invoked”是什么意思?

Dan*_*vey 11 sql-server extended-events sql-server-2016

我的其中一台 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标准版)

有人可以给我更多关于这方面的信息吗?

Jos*_*ell 7

扩展事件的记录很差。

调试通道扩展事件的记录更差。

根据我的测试,您需要使用这些事件条目中的“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 事件查看器“系统”日志并查看机器重新启动的原因,或者哪个服务/组件发出 SHUTDOWN 命令到 SQL Server 服务。

祝你好运!