警示

適用範圍: 是SQL Server (所有支援的版本)

重要

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

事件會由 SQL Server 產生,並輸入 Microsoft Windows 應用程式記錄檔中。 SQL Server Agent 會讀取應用程式記錄檔,然後比較寫入其中的事件與您所定義的警示。 當 SQL Server Agent 找到相符項目時,即會發出警示,這是對事件的自動回應。 除了監視 SQL Server 事件以外, SQL Server Agent 還可以監視效能條件與 Windows Management Instrumentation (WMI) 事件。

若要定義警示,您必須指定:

  • 警示的名稱。

  • 觸發警示的事件或效能條件。

  • SQL Server Agent 為回應事件或效能條件所採取的動作。

為警示命名

每個警示必須有一個名稱。 警示名稱在 SQL Server 的執行個體中必須是唯一的,而且不可超過 128 個字元。

選取事件類型

警示會回應特定的事件類型。 警示會回應下列事件類型:

  • SQL Server 事件

  • SQL Server 效能條件

  • WMI 事件

事件類型將決定您用來指定精確事件的參數。

指定 SQL Server 事件

您可以指定要發生的警示,以回應一或多個事件。 請使用下列參數來指定可觸發警示的事件:

  • 錯誤號碼

    SQL Server Agent 會在特定錯誤發生時發出警示。 例如,您可以指定錯誤號碼 2571 來回應對「資料庫主控命令 (DBCC)」的未經授權叫用嘗試。

  • 嚴重性層級

    SQL Server Agent 會在特定嚴重性的任何錯誤發生時發出警示。 例如,您可以指定嚴重性層級 15 來回應 Transact-SQL 陳述式中的語法錯誤。

  • Database

    SQL Server Agent 只有在特定資料庫中發生事件時,才會發出警示。 您可以在錯誤號碼或嚴重性層級以外搭配套用此選項。 例如,若某個執行個體中含有一個實際執行用的資料庫和一個報告用的資料庫,您就可以定義一個只會針對實際資料庫回應語法錯誤的警示。

  • 事件文字

    SQL Server Agent 會在指定事件的事件訊息中含有特定的文字字串時發出警示。 例如,您可以定義警示來回應含有特定資料表名稱或特定條件約束名稱的訊息。

選取效能條件

您可以指定一個為回應特定效能條件而產生的警示。 此時您必須指定所要監視的效能計數器、警示的臨界值以及計數器在警示產生時必須顯示的行為。 若要設定效能條件,您必須在 SQL Server Agent 的 [一般] 頁面上定義 [新增警示] 或 [警示屬性] 對話方塊中的下列項目:

  • Object

    此物件為要監視的效能區域。

  • 計數器

    計數器是要監視之區域的屬性。

  • 執行個體

    SQL Server 執行個體可為要監視的屬性定義特定的執行個體 (如果有的話)。

  • 如果是計數器和值則發出警示

    警示的臨界值和產生警示的行為。 臨界值是一個數值。 此行為是下列其中一項:低於、變成等於或高於在 [值] 中指定的數值。 [值] 是一個描述效能行況計數器的數值。 例如,若要設定警示在效能物件 SQLServer:LocksLock Wait Time 超過 30 分鐘時產生,您就必須選擇 [高於],並指定 30 為 [值]。

    至於另一個範例,您可以指定效能物件 SQLServer:Transactionstempdb 中的可用空間低於 1000 KB 時發出警示。 若要進行此設定,您必須選擇計數器 Free space in tempdb (KB)、低於,並在 [值] 中指定 1000

    注意

    效能資料是定期取樣的,因此在到達臨界值與發出效能警示之間可能會有一點延遲 (幾秒鐘)。

    注意

    儲存伺服器名稱的事件記錄變數限制為 32 個字元。 因此,如果主機名稱和執行個體名稱的組合大小大於 32 個字元,您可能會收到下列錯誤:

Warning,[466] Failed to copy server name LONGNAMESQLSERV\LONGINSTANCENAME while generating performance counter alerts.

選取 WMI 事件

您可以指定一個為回應特定 WMI 事件而產生的警示。 若要選取 WMI 事件,您必須在 SQL Server Agent 的 [一般] 頁面上定義 [新增警示] 或 [警示屬性] 對話方塊中的下列項目:

  • Namespace

    SQL Server Agent 會對可用的 WMI 命名空間註冊為 WMI 用戶端,以進行事件查詢。

  • 查詢

    SQL Server Agent 會使用可用的 Windows Management Instrumentation 查詢語言 (WQL) 陳述式來識別特定的事件。

以下是一般工作的連結:

若要以訊息編號為基礎建立警示

若要以嚴重性層級為基礎建立警示

若要根據 WMI 事件建立警示

若要定義對警示的回應

若要建立使用者自訂的事件錯誤訊息

若要修改使用者自訂的事件錯誤訊息

若要刪除使用者自訂的事件錯誤訊息

若要停用或重新啟動警示

另請參閱

sp_update_alert (Transact-SQL)