SQL Server服务和SQL Server 代理服务无法在独立服务器上启动

本文可帮助你解决SQL Server服务和SQL Server 代理服务可能无法在独立服务器上启动的问题。

原始产品版本:SQL Server
原始 KB 数: 307288

症状

  • 问题 1:在独立服务器上,MSSQLSERVER 服务可能无法启动,并收到以下错误消息:

    错误 1068 - (依赖项服务或组无法启动。在 MSSQLServer 服务上执行此服务操作时发生 ) 。

  • 问题 2:同样,SQLServerAgent 服务也可能无法启动,并且你会收到以下错误消息:

    错误 1068 - (依赖项服务或组无法启动。) 在 SQLServerAgent 服务上执行此服务操作时发生。

    当以下两个条件都成立时,会出现问题 1 和问题 2:

    • 服务器计算机位于工作组中,而不是域的一部分。
    • MSSQLSERVER 和 SQLServerAgent 服务都设置为使用域帐户进行启动。
  • 问题 3:在域成员服务器上,MSSQLSERVER 服务可能无法在服务器启动期间启动,并且你在 事件查看器 中收到以下事件 ID 为 7038 的消息:

    由于以下错误,MSSQLSERVER 服务无法使用当前配置的密码作为 domain\mssqlsvc 登录:源:NetLogon 说明:目前没有可用于为登录请求提供服务的登录服务器。 MSSQLSERVER 服务意外终止。

如果满足以下所有条件,则会出现此问题:

  • 服务器是域的一部分。
  • MSSQLSERVER 和 SQLServerAgent 服务都设置为使用域帐户进行启动。
  • MSSQLSERVER 和 SQLServerAgent 的启动模式设置为“自动”。

原因

出现问题 1 和问题 2 是因为服务器是独立计算机,NetLogon 服务不会在服务器上启动,因此无法进行域范围的登录身份验证。

出现问题 3 是因为SQL Server服务尝试在 NetLogon 服务启动之前启动。

解决方案

若要修复问题 1 和问题 2,请执行以下步骤:

  • 将 MSSQLSERVER 和 SQLServerAgent 的启动帐户更改为使用本地系统帐户。

  • 重新启动服务器。

若要修复问题 3,请使用以下解决方法:

  • 为特定 Windows 服务器将SQL Server启动配置为延迟启动,其他 Windows 服务(如 NetLogon)先完成,SQL Server启动,不会出现问题。

  • 将SQL Server启动配置为重试,可以在第二次尝试启动时完成启动。

  • 将服务器上所有网络接口的重复地址检测 (-DadTransmits) 值更改为 1。 有关详细信息 ,请参阅 Set-NetIPInterface 命令。

  • 更改SQL Server和SQL Server 代理服务的恢复选项。 为失败选项指定 “重启服务 ”作为操作。 可以使用熟悉的服务控制管理器接口从管理工具的服务小程序执行此选项。

如果延迟启动选项无法修复此问题 3,则可以将以下依赖项添加到SQL Server服务:

  • Ip 帮助程序服务
  • 服务器服务
  • 网络列表服务

可以使用以下命令添加依赖项:

sc.exe qc MSSQLSERVER ::view dependencies sc.exe config MSSQLSERVER depend=iphlpsvc/LanmanServer/netprofm ::add service dependencies

更多信息

在独立计算机上,应将 NetLogon 服务设置为 手动 启动。