SQL Server 服务 - 未自动启动,“系统找不到指定的文件”,但手动启动正常

Sea*_* NT 5 sql-server sql-server-2016

这是一个奇怪的问题,我已经没有办法解决这个问题了。这就是问题所在,这是我能总结的最好的。

\n

当 SQL Server 引擎和代理服务设置为“自动”时,服务器首次启动时不会启动。查看事件查看器,发现以下错误:

\n
\n

由于以下错误,MSSQLSERVER 服务无法启动:\n系统找不到指定的文件。

\n
\n

但是,如果我在启动后进入服务并手动启动服务,它们就会毫无问题地开始运行。更令人困惑的是,这并不限于单个服务器。如果有帮助的话,它们都是集群/AG 的一部分。

\n

翻阅了一些不同的网站和帖子,这是我的比较:

\n

https://blog.sqlauthority.com/2020/01/16/sql-server-event-id-7000-the-system-cannot-find-the-file-specified/

\n
\n

这与我们在事件日志中看到的错误相同。当我查看服务的属性时,我发现 \xe2\x80\x9cPath toexecutable\xe2\x80\x9d 中提到的路径是无效路径。

\n
\n

不适用于此处。我可以手动启动服务,并且服务和注册表中的路径是正确的。

\n

正在使用域帐户(不是 gMSA),并且密码设置正确。

\n

AMt*_*two 11

这并不是一件完全不常见的事情。根据错误消息,可能是您的 SAN 存储在 SQL Server 服务启动之前未完全联机。

Windows 以“随机”顺序启动“自动”服务,除非您显式设置服务依赖关系,而 SQL Server 服务根本没有任何依赖关系。但是,存储可用性(或缺乏存储可用性)可能会影响 SQL Server 的启动能力。

在服务控制面板中将 SQL Server 更改为“自动(延迟启动)”将在服务启动中注入 2 分钟的延迟。在大多数情况下,额外的 2 分钟延迟是可以接受的,如果 SQL Server 服务无法启动,这也是一个明智的解决方案。

您还可以使用“服务”控制面板上 SQL Server 服务的“恢复”选项卡,以便在发生故障时自动重新启动。例如,您可以设置在第一次和第二次失败时,服务在 1 分钟后重新启动。在不延迟启动的情况下使用此功能可以产生大致相同的净效果 - 您的服务可能会更快启动,但可能会失败并且必须尝试重新启动。

SQL Server 服务恢复选项卡

  • 如果您可以准确地确定依赖关系,并且可以保证 SQL Server 将始终依赖于该服务来启动,并且您知道在您的环境中执行并记录它,那么是的。但延迟启动既简单又可靠。 (2认同)