Sql-Server-2014

SQL Server 代理無法啟動 - 超時

  • November 29, 2017

在我的本地主機上,我正在執行 2014(不是快遞)。我需要創建一個作業,為此,我需要執行代理服務。但我無法開始。

我一直在用Google搜尋鼻涕,但到目前為止還沒有運氣。

在 Windows 日誌中,在系統下,我只有這個:

由於以下錯誤,SQL Server 代理 (SQL2014) 服務無法啟動:服務未及時響應啟動或控制請求。

等待 SQL Server 代理 (SQL2014) 服務連接時達到超時(30000 毫秒)。

伺服器 {1B1F472E-3221-4826-97DB-2C2324D389AE} 未在要求的超時時間內向 DCOM 註冊。

不是很有幫助。我找到了 SQLAGENT.OUT 文件,但其中沒有任何最新內容。最後一個條目來自一個多月前。儘管如此,這是文件的內容:

2017-10-26 15:35:51 - ? [100] Microsoft SQLServerAgent version 12.0.5207.0 (X64 unicode retail build) : Process ID 4980
2017-10-26 15:35:51 - ? [495] The SQL Server Agent startup service account is NT Service\SQLAgent$SQL2014.
2017-10-26 15:35:56 - ? [393] Waiting for SQL Server to recover database 'msdb'...
2017-10-26 15:35:57 - ? [000] 
2017-10-26 15:35:57 - ? [101] SQL Server EBDEVELOPER\SQL2014 version 12.00.5207 (0 connection limit)
2017-10-26 15:35:57 - ? [102] SQL Server ODBC driver version 11.00.2100
2017-10-26 15:35:57 - ? [103] NetLib being used by driver is DBNETLIB; Local host server is EBDEVELOPER\SQL2014
2017-10-26 15:35:57 - ? [310] 8 processor(s) and 16315 MB RAM detected
2017-10-26 15:35:57 - ? [339] Local computer is EBDEVELOPER running Windows NT 6.2 (9200) 
2017-10-26 15:35:57 - ? [432] There are 13 subsystems in the subsystems cache
2017-10-26 15:35:58 - ? [129] SQLAgent$SQL2014 starting under Windows NT service control
2017-10-26 15:35:58 - + [475] Database Mail is not enabled for agent notifications.
2017-10-26 15:35:58 - + [396] An idle CPU condition has not been defined - OnIdle job schedules will have no effect
2017-10-26 15:37:00 - ! [298] SQLServer Error: 15404, Could not obtain information about Windows NT group/user 'xxxxx', error code 0x534. [SQLSTATE 42000] (ConnIsLoginSysAdmin)
2017-10-26 15:38:00 - ! [298] SQLServer Error: 15404, Could not obtain information about Windows NT group/user 'xxxxx', error code 0x534. [SQLSTATE 42000] (ConnIsLoginSysAdmin)
2017-10-26 15:39:00 - ! [298] SQLServer Error: 15404, Could not obtain information about Windows NT group/user 'xxxxx', error code 0x534. [SQLSTATE 42000] (ConnIsLoginSysAdmin)
2017-10-26 15:40:00 - ! [298] SQLServer Error: 15404, Could not obtain information about Windows NT group/user 'xxxxx', error code 0x534. [SQLSTATE 42000] (ConnIsLoginSysAdmin)
2017-10-26 15:41:00 - ! [298] SQLServer Error: 15404, Could not obtain information about Windows NT group/user 'xxxxx', error code 0x534. [SQLSTATE 42000] (ConnIsLoginSysAdmin)
2017-10-26 15:41:33 - ? [131] SQLAgent$SQL2014 service stopping due to a stop request from a user, process, or the OS...
2017-10-26 15:41:35 - ? [000] Configuration option 'Agent XPs' changed from 1 to 0. Run the RECONFIGURE statement to install. [SQLSTATE 01000] (Message 15457)
2017-10-26 15:41:35 - ? [098] SQLServerAgent terminated (normally)

(這xxxxx是曾經使用這台筆記型電腦的前開發人員的名字。我是他的替代者。為了他,我刪除了他的名字。)

根據我在其他執行緒上找到的一些建議,我對主數據庫執行了這個:

sp_configure 'show advanced options','1'
RECONFIGURE
go

sp_configure 'Agent XPs','1'
RECONFIGURE
go

它返回了這個:

配置選項“顯示高級選項”從 1 更改為 1。執行 RECONFIGURE 語句進行安裝。

配置選項“Agent XPs”從 1 更改為 1。執行 RECONFIGURE 語句進行安裝。

服務仍然無法啟動(儘管看起來沒有任何變化,所以我並不感到驚訝)。

我嘗試從普通的 Windows 服務和 SQL Server 配置管理器中啟動它。

在“屬性”中,我嘗試使用“內置帳戶”下拉列表中的所有選項登錄。我還嘗試了用於從 SSMS 連接到數據庫的管理員帳戶。

該服務設置為自動啟動類型。

我不確定還能嘗試什麼。有什麼建議麼?

可能 SQL Server 代理服務以前在舊開發人員的帳戶“xxxxx”下執行。

開發人員離開了,他/她的帳戶在 Active Directory 中被刪除。

該服務將不再啟動。

解決方案

  1. 啟動SQL Server 配置管理器
  2. 右鍵點擊SQL Server 代理 (INSTANCE_NAME)服務以顯示屬性
  3. 屬性中更改服務帳戶以使用您的Windows 帳戶啟動或切換到**“本地系統”**。
  4. 關閉屬性
  5. 在配置管理器中啟動服務。

注意:使用****SQL Server 配置管理器而不是普通的Windows 服務管理控制台

更改這些設置很重要。原因是 SQL Server 配置管理器將確保正確設置所有目錄/文件權限和 SQL Server 權限。

試試這個,它很可能會解決你的問題。我敢打賭,COM 安全選項卡上的組件服務、電腦和我的電腦屬性的安全設置很可能不包括啟動服務所需的組或使用者。

  1. 在執行中輸入dcomcnfg,它會打開組件服務
  2. 擴展組件服務,擴展電腦,擴展我的電腦
  3. 右鍵點擊我的電腦,然後點擊屬性
  4. 點擊 COM 安全選項卡,並確認正確設置了訪問權限以及啟動和啟動權限屬性。

引用自:https://dba.stackexchange.com/questions/191991