監視及回應事件

適用於:SQL ServerAzure SQL 受控執行個體

重要

Azure SQL 受控執行個體目前支援多數 (但非全部) 的 SQL Server Agent 功能。 如需詳細資料,請參閱 Azure SQL 受控執行個體與 SQL Server 之間的 T-SQL 差異

SQL Server Agent 會監視及自動回應「事件」,例如來自 SQL Server 的訊息、特定效能狀況與 Windows Management Instrumentation (WMI) 事件。

本節內容

警示
包含如何命名警示和選取警示所回應之事件或效能狀況的相關資訊。

建立使用者定義的事件
包含的資訊說明如何建立 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 或更高的 sysmessages 錯誤。

    如果您還要記錄嚴重性低於 19 的特定 sysmessages 錯誤,請使用 sp_altermessage 預存程序將這類錯誤指定為「一律記錄」。

  • 使用 WITH LOG 語法叫用的任何 RAISERROR 陳述式。

    建議您使用 PAISERROR WITH LOG,從 SQL Server 執行個體寫入 Windows 應用程式記錄檔。

  • 使用 xp_logevent 記錄的任何應用程式事件。

    注意

    記錄應用程式事件會消耗記錄檔空間,並且造成 Windows 應用程式記錄檔超出其大小上限。 請確定 Windows 應用程式記錄檔具有足夠的大小,以免遺失 SQL Server 事件資訊。

當 SQL Server 記錄訊息時,SQL Server Agent 服務會比較訊息和 SQL Server 系統管理員所定義的警示。

不管事件的來源為何,SQL Server Agent 服務都會執行事件警示中指定的工作來回應事件。

另請參閱

sp_altermessage