監視和回應事件

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

本節內容

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

  • 建立使用者自訂事件
    包含的資訊有關於如何建立除了 SQL Server 預先定義之事件以外的事件。

  • 檢視、修改和刪除警示
    包含如何檢視警示內容和修改其屬性的相關資訊。

  • 定義操作員
    包含當作業失敗或成功時,如何建立 SQL Server Agent 可用來傳送通知的管理員別名。

  • 檢視和修改運算子
    包含如何檢視與所定義操作員相關聯的使用者,以及如何修改操作員別名內含之使用者的相關資訊。

  • 警示運算子
    包含如何設定通知以便操作員回應警示的相關資訊。

  • 將運算子或警示複製到其他伺服器
    包含如何產生 Transact-SQL 指令碼,將警示和操作員從某個伺服器複製到另一個伺服器的相關資訊。

關於監視及回應事件

對於事件的自動回應稱之為「警示」。您可以在一或多個事件上定義警示,以指定 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 應用程式記錄檔。如需 RAISERROR 陳述式的詳細資訊,請參閱<使用 RAISERROR>。

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

    [!附註]

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

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

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