監視和回應事件
重要
在 Azure SQL 受控實例上,目前支援大部分但並非所有 SQL Server Agent 功能。 如需詳細資訊,請參閱 與 SQL Server 的 Azure SQL 受控實例 T-SQL 差異。
SQL Server Agent 可以監視並自動回應 事件,例如來自 SQL Server 的訊息、特定的效能條件,以及 Windows Management Instrumentation (WMI) 事件。
在本節中
警示
包含命名警示的相關信息,以及選取警示回應的事件或效能條件。
建立 User-Defined 事件
包含有關如何建立除了 SQL Server 預先定義的事件之外的事件的信息。
運算子
包含建立系統管理員別名的相關信息,讓 SQL Server Agent 可在作業失敗或成功時用來傳送通知。
關於監控和回應事件
自動回應事件稱為 警示。 您可以定義一或多個事件的警示,以指定 SQL Server Agent 回應其發生方式。 警示可以藉由通知系統管理員、執行作業或同時執行兩者來回應事件。 警示也可以將事件轉送至不同電腦上的 Microsoft Windows 應用程式記錄檔。 例如,您可以指定如果發生嚴重性 19 的事件,作員會立即收到通知。 藉由定義警示,資料庫管理員可以更有效地監視和管理 SQL Server。
SQL Server Agent 只會回應已定義警示的事件。 SQL Server Agent 用來監視事件的方法取決於事件類型。
為性能計數器定義 SQL Server Agent 警示時,SQL Server Agent 會直接監視性能計數器。 針對 WMI 事件,SQL Server Agent 會註冊 WMI 事件的事件查詢。
為了回應來自 SQL Server 的訊息,SQL Server Agent 會監視 Windows 應用程式記錄。 SQL Server Agent 只能回應此記錄檔中顯示的訊息。 根據預設,SQL Server 會在 Windows 應用程式記錄檔中記錄下列訊息:
嚴重性等級 19 或更高的系統訊息錯誤。
如果您也想要記錄嚴重性低於 19 的特定 sysmessages 錯誤,請使用 sp_altermessage 預存程式將這類錯誤指定為「一律記錄」。
使用WITH LOG語法叫用的任何RAISERROR語句。
建議使用RAISERROR WITH LOG,從SQL Server 實例寫入 Windows 應用程式記錄檔。
使用 xp_logevent 記錄的任何應用程式事件。
注意
記錄應用程式事件會耗用記錄空間,並可能導致 Windows 應用程式記錄檔超過其大小上限。 請確定 Windows 應用程式記錄大小上限夠大,以避免遺失 SQL Server 事件資訊。
當 SQL Server 記錄訊息時,SQL Server Agent 服務會比較訊息與 SQL Server 系統管理員所定義的警示。
不論事件的來源為何,SQL Server Agent 服務都會執行事件警示中指定的工作來回應事件。