首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server Agent 警示疑難排查檢查清單

     編輯:關於SqlServer

SQL Server Agent 警示 (Alerts) 失效通常源於服務帳號權限、服務狀態或配置疏漏。本文提供標準化排查清單,快速定位並修復警示不觸發問題。

排查清單 (按優先序)

1. 套用最新 Service Pack / 累積更新

早期版本存在警示引擎已知 Bug (如事件日誌讀取失敗、郵件發送阻塞)。務必安裝對應版本最新 SP/CU,查閱 KB 文件 確認修復項目。

2. SQL Server Agent 服務帳號權限

  • 錯誤配置:使用 Local System 帳號 → 無網路權限,導致寫入遠端事件日誌、存取網路共享、發送郵件/傳呼全部失效。
  • 正確配置:建立專用網域帳號 (如 DOMAIN\sqlagent_svc) 加入 Domain Users 群組,設定為 Agent 服務登入帳號。授予「作為批次作業登入」、「作為服務登入」本地策略權限。

3. 核心服務運行狀態

確認下列服務均為 Running 且啟動類型 Automatic:

  • SQL Server Agent (MSSQLSERVER)
  • Event Log (系統事件日誌服務,Agent 讀取事件觸發警示的基礎)

4. 警示啟用狀態檢查

企業管理員 → 管理 → SQL Server Agent → 警示 → 右鍵屬性 → 確認 啟用 核取方塊已勾選。已停用警示不會觸發任何回應。

5. 警示歷程記錄分析

同介面 → 右鍵「檢視歷程記錄」→ 確認最後觸發時間、回應動作 (作業/通知) 成敗。若從未觸發,回頭檢查條件定義 (錯誤號、嚴重性、資料庫名稱) 是否匹配實際事件。

6. 運算子與通知配置

  • 運算子 (Operators) 已建立且啟用電子郵件/傳呼/網路傳送地址。
  • 警示屬性 → 回應頁籤 → 已勾選「通知運算子」並選取正確運算子。
  • Database Mail / SQLMail 服務正常運行,測試郵件發送成功。

7. 作業回應執行權限

警示觸發的作業 (Jobs) 擁有者需具備執行權限;作業步驟中存取網路資源 (備份至共享、執行外部程式) 需 Agent 服務帳號有對應權限。

快速驗證腳本

-- 檢視所有警示及其啟用狀態
SELECT name, enabled, last_occurrence_date, last_response_date
FROM msdb.dbo.sysalerts
ORDER BY name;

-- 檢視運算子配置
SELECT name, email_address, pager_address, netsend_address
FROM msdb.dbo.sysoperators
WHERE enabled = 1;

最佳實踐建議

  • 建立「心跳警示」:每小時觸發無條件作業記錄日誌,驗證警示引擎存活。
  • 嚴重性 16-25 錯誤 (使用者可修正) 不建議直接警示,改用作業步驟輸出檢查邏輯判斷。
  • 文檔化所有警示定義、對應運算子、預期回應流程,納入運行手冊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved