共用方式為


SQL Server 服務和 SQL Server Agent 服務無法在獨立伺服器上啟動

本文可協助您解決 SQL Server 服務和 SQL Server Agent 服務可能無法在獨立伺服器上啟動的問題。

原始產品版本:SQL Server
原始 KB 編號: 307288

徵兆

  • 問題 1: 在獨立伺服器上,MSSQLSERVER 服務可能無法啟動,而且您會收到下列錯誤訊息:

    An error 1068 - (The dependency service or group failed to start.) occurred while performing this service operation on the MSSQLServer Service.
    
  • 問題 2: 同樣地,SQLServerAgent 服務也可能無法啟動,而且您會收到下列錯誤訊息:

    An error 1068 - (The dependency service or group failed to start.) occurred while performing this service operation on the SQLServerAgent Service.
    

    當下列兩個條件都成立時,會發生問題 1問題 2

    • 伺服器計算機位於工作組中,而不是網域的一部分。
    • MSSQLSERVER 和 SQLServerAgent 服務都會設定為針對啟動使用網域帳戶。
  • 問題 3:在網域成員伺服器上,MSSQLSERVER 服務可能不會在伺服器啟動期間啟動,而且您在事件標識碼為 7038 的 事件檢視器收到下列訊息:

    The MSSQLSERVER service was unable to log on as domain\mssqlsvc with the currently configured password due to the following error: Source: NetLogon Description: There are currently no logon servers available to service the logon request. The MSSQLSERVER service terminated unexpectedly.
    

    當下列所有條件都成立時,就會發生此問題:

    • 伺服器是網域的一部分。
    • MSSQLSERVER 和 SQLServerAgent 服務都會設定為針對啟動使用網域帳戶。
    • MSSQLSERVER 和 SQLServerAgent 的啟動模式會設定為 [自動]。

原因

問題 1問題 2 發生,因為伺服器是獨立計算機,而且 NetLogon 服務不會在伺服器上啟動。 因此,不可能進行全網域的登入驗證。

問題 3 是因為 SQL Server 服務嘗試在 NetLogon 服務啟動之前啟動。

解決方法

  • 若要修正 問題 1問題 2,請遵循下列步驟:

    1. 將 MSSQLSERVER 和 SQLServerAgent 的啟動帳戶變更為使用本機系統帳戶。
    2. 重新啟動伺服器。

    注意

    在獨立計算機上,應該將 NetLogon 服務設定為 手動 啟動。

  • 若要修正 問題 3,請使用下列因應措施:

    • 將 SQL Server 啟動設定為 特定 Windows 伺服器的延遲啟動 。 其他 Windows 服務,例如 NetLogon 先完成,SQL Server 就會啟動而不會發生問題。

    • 設定 SQL Server 啟動以 重試。 您可以在第二次啟動嘗試時完成啟動。

    • 針對伺服器上的所有網路介面,將 [重複位址偵測]-DadTransmits 值變更為 1 。 如需詳細資訊,請參閱 Set-NetIPInterface 命令

    • 變更 SQL Server 和 SQL Server Agent 服務的復原選項。 指定 [重新啟動服務 ] 作為失敗選項的動作。 您可以使用熟悉的 [服務控制管理員] 介面,從 [系統管理工具] 的 [服務] Applet 執行此選項。

    如果延遲的啟動選項無法修正問題 3,請將下列相依性新增至 SQL Server 服務:

    • Ip 協助程式服務
    • 伺服器服務
    • 網路清單服務

    您可以使用下列命令來新增相依性。 下列範例假設預設 SQL Server 實例 MSSQLSERVER。 針對具名實例,請使用 MSSQL$INSTANCENAME

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

    第一個和第三個命令會顯示變更前後的相依性。