我的其中一台 SQL Server 2016 Standard 服务器出现问题。我有 8 台生产服务器,这台是唯一一台随机崩溃而日志中没有任何痕迹的服务器。
我启用了 system_health。我注意到我在系统健康女巫中有一行是“sql_exit_invoked”。
我正在尝试查找有关该行的更多信息。这是什么意思?我在互联网上找到的唯一信息是它发生在调用 SQLExit() 时,并且它仅从 SQL 2012 开始记录。(链接在 msdn 网站上可用)
所以我的问题是:我应该担心在我的日志中看到这个吗?我只在我有问题的服务器上发现了这一点,而在其他 7 台服务器中没有发现。(均为SQL Server 2016标准版)
谁能给我更多关于这方面的信息?
扩展事件的记录很差。
调试通道扩展事件的记录甚至更少。
根据我的测试,您需要使用这些事件条目中的“shutdown_option”值作为下一步查找的线索。这是他们在我的有限测试中的意思:
ORDERLY_SHUTDOWN
NICE_SHUTDOWN
SHUTDOWN;
- 使用T-SQL 命令停止服务FAST_SHUTDOWN
SHUTDOWN WITH NOWAIT;
- 使用T-SQL 命令停止服务请注意,我还尝试了以下操作,但他们没有在扩展事件会话中注册任何内容:
我无法获得
SHUTDOWN_NOT_SET
事件的版本,因此仍然是个谜。在您的屏幕截图中,我可以看到 ORDERLY_SHUTDOWN 是您方案中的选项。在那种情况下,因为这似乎意味着服务或 Windows PC 的干净关闭,我会查看 Windows 事件查看器“系统”日志并查看机器重启的原因,或者哪个服务/组件正在发出 SHUTDOWN 命令到 SQL Server 服务。
祝你好运!