SQL Server Agent 警示 (Alerts) 失效通常源於服務帳號權限、服務狀態或配置疏漏。本文提供標準化排查清單,快速定位並修復警示不觸發問題。
早期版本存在警示引擎已知 Bug (如事件日誌讀取失敗、郵件發送阻塞)。務必安裝對應版本最新 SP/CU,查閱 KB 文件 確認修復項目。
Local System 帳號 → 無網路權限,導致寫入遠端事件日誌、存取網路共享、發送郵件/傳呼全部失效。DOMAIN\sqlagent_svc) 加入 Domain Users 群組,設定為 Agent 服務登入帳號。授予「作為批次作業登入」、「作為服務登入」本地策略權限。確認下列服務均為 Running 且啟動類型 Automatic:
企業管理員 → 管理 → SQL Server Agent → 警示 → 右鍵屬性 → 確認 啟用 核取方塊已勾選。已停用警示不會觸發任何回應。
同介面 → 右鍵「檢視歷程記錄」→ 確認最後觸發時間、回應動作 (作業/通知) 成敗。若從未觸發,回頭檢查條件定義 (錯誤號、嚴重性、資料庫名稱) 是否匹配實際事件。
警示觸發的作業 (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;