首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL Server 服務無法開機自啟:服務設定檢查與常見故障排除

     編輯:程式設計綜合問答

現象

SQL Server 服務啟動類型設為「自動」,但開機後服務未運行。前幾天正常,近期突然失效。

排查步驟

  1. 確認服務啟動類型:
    services.msc → SQL Server (MSSQLSERVER) → 右鍵內容 → 常規 → 啟動類型:自動 (或自動(延遲啟動))
  2. 查看事件檢視器:
    eventvwr.msc → Windows 記錄 → System → 來源: MSSQLSERVER
    關鍵字: "The service did not start due to a logon failure", "Login failed for user", "Insufficient memory"
  3. 檢查服務登入身分:
    服務內容 → 登入 → 本機系統帳戶 / 指定域帳號
    若用域帳號:密碼過期、帳號鎖定、權限不足 (需「作為服務登入」權限)
  4. 相依服務狀態:
    SQL Server 相依: SQL Server Agent, SQL Full-text Filter Daemon, SQL Browser
    確認相依服務皆為「自動」且能正常啟動
  5. 錯誤日誌分析:
    路徑: C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log\ERRORLOG
    搜尋: "Error", "Failed", "Cannot"
    常見: 資料庫檔案損壞、端口被佔用 (1433)、憑證過期、磁碟空間不足
  6. 最近變更回溯:
    • Windows Update 安裝後需重啟?
    • 修改過服務帳號密碼?
    • 安裝/更新防毒軟體、防火牆規則?
    • 掛載/卸載資料庫檔案?

常見解決方案

原因解決步驟
服務帳號密碼過期服務內容→登入→重新輸入密碼→應用→重啟服務
「作為服務登入」權限遺失gpedit.msc → 電腦設定→Windows 設定→安全性設定→本機原則→用戶權利指派 → 加入服務帳號
端口 1433 被佔用netstat -ano | findstr :1433 → taskkill /PID xxx /F 或修改 SQL Server 通訊埠
master/model 資料庫損壞單用戶模式啟動 (sqlservr.exe -m) → RESTORE DATABASE master FROM DISK=...
延遲啟動導致體感「未啟動」改為「自動」而非「自動(延遲啟動)」,或接受延遲 1-2 分鐘

快速驗證腳本 (PowerShell)

$svc = Get-Service MSSQLSERVER
$svc.StartType = 'Automatic'
$svc | Select Name, Status, StartType, ServiceName
# 檢查相依
$svc.ServicesDependedOn | Select Name, Status
# 檢查事件
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='MSSQLSERVER'; Level=2} -MaxEvents 20

總結

SQL Server 開機不自啟,90% 是 服務帳號認證問題 (密碼過期/權限遺失) 或 相依服務/資源未就緒。按「事件檢視器 → 錯誤日誌 → 服務屬性」三步走,通常 10 分鐘內可定位根因。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved