警告

適用対象:SQL Server

重要

現在、Azure SQL Managed Instance によって、すべてではありませんが、ほとんどの SQL Server エージェントの機能がサポートされています。 詳細については、Azure SQL Managed Instance と SQL Server の T-SQL の相違点に関するページを参照してください。

イベントは、 SQL Server によって生成され、 Microsoft Windows アプリケーション ログに記録されます。 SQL Server エージェントは、アプリケーション ログを読み取り、そこに書き込まれているイベントを、定義済みの警告と比較します。 SQL Server エージェントによって一致が検出されると、イベントに対する自動応答である警告を発します。 SQL Server イベントの監視だけでなく、 SQL Server エージェントはパフォーマンス状態および Windows Management Instrumentation (WMI) イベントも監視します。

警告を定義するには、次の項目を指定します。

  • 警告の名前を指定します。

  • 警告をトリガーするイベントまたはパフォーマンス状態

  • SQL Server エージェントがそのイベントまたはパフォーマンス状態への応答として実行するアクション

警告の命名

すべての警告に名前を付ける必要があります。 警告名は、 SQL Server のインスタンス内で一意である必要があります。使用できる文字数は最大 128 文字です。

イベントの種類の選択

警告は特定の種類のイベントに応答します。 警告は次のイベントの種類に応答します。

  • SQL Server のイベント

  • SQL Server のパフォーマンス状態

  • WMI イベント

イベントの種類によって、イベントの詳細を指定するために使用するパラメーターが異なります。

SQL Server イベントの指定

1 つ以上のイベントに応答して発生する警告を指定できます。 次のパラメーターを使用して警告をトリガーするイベントを指定します。

  • エラー番号

    SQL Server エージェントは、特定のエラーが発生したときに警告を発します。 たとえば、データベース コンソール コマンド (DBCC) の不正な起動試行に対する応答をエラー番号 2571 と指定できます。

  • 重大度レベル

    SQL Server エージェントは、特定の重大度のエラーが発生したときに警告を発します。 たとえば、Transact-SQL ステートメントでの構文エラーに重大度 15 を指定できます。

  • [データベース]

    SQL Server エージェントは、特定のデータベースでイベントが発生した場合のみ警告を発します。 このオプションは、エラー番号または重大度に加えて適用できます。 たとえば、1 つのインスタンスで運用データベースとレポート用データベースを使用している場合、運用データベースで構文エラーが発生した場合のみ、警告を発するように定義できます。

  • イベント テキスト

    SQL Server エージェントは、指定されたイベントのイベント メッセージに特定の文字列が含まれている場合に警告を発します。 たとえば、特定のテーブル名または特定の定数を含んでいるメッセージに応答する警告を定義できます。

パフォーマンス状態の選択

特定のパフォーマンス状態に応答する警告を指定できます。 この場合、監視するパフォーマンス カウンター、警告を発生するしきい値、および警告発生時にカウンターが示す動作を指定します。 パフォーマンス状態を設定するには、 SQL Server エージェントの [新しい警告] または [警告のプロパティ] ダイアログ ボックスを開き、 [全般] ページで次の項目を定義する必要があります。

  • Object

    オブジェクトは、監視されるパフォーマンスの領域です。

  • カウンター

    カウンターは、監視される領域の属性です。

  • インスタンス

    SQL Server インスタンスでは、監視する属性に特定のインスタンスがある場合、そのインスタンスを定義します。

  • [警告カウンター] および [値]

    警告およびそれを生成する動作のしきい値です。 しきい値は数値です。 動作は、 [設定値未満][設定値に等しい][設定値を超える] のいずれかになります。 [値] は、パフォーマンス状況の警告カウンターの基準となる数値です。 たとえば、パフォーマンス オブジェクト SQLServer:Locks で、 Lock Wait Time が 30 分を超えると警告が発生するように設定するには、 [設定値を超える] を選択し、 [値] を 30 に指定します。

    別の例として、 tempdb の空き領域が 1,000 KB を下回った場合にパフォーマンス オブジェクト SQLServer:Transactions に対して警告が発生するように指定できます。 このように設定するには、カウンター [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 エージェントの [新しい警告] または [警告のプロパティ] ダイアログ ボックスを開き、 [全般] ページで次の項目を定義する必要があります。

  • Namespace

    SQL Server エージェントを WMI クライアントとして、イベントをクエリするために用意された WMI 名前空間に登録します。

  • クエリ

    SQL Server エージェントは、Windows Management Instrumentation Query Language (WQL) ステートメントを使用して、特定のイベントを識別します。

一般的なタスクへのリンクは次のとおりです。

メッセージ番号に基づいた警告を作成するには

重大度レベルに基づいた警告を作成するには

WMI イベントに基づいた警告を作成するには

警告に対する応答を定義するには

ユーザー定義のイベント エラー メッセージを作成するには

ユーザー定義のイベント エラー メッセージを変更するには

ユーザー定義のイベント エラー メッセージを削除するには

警告を無効にしたり、再び有効にするには

参照

sp_update_alert (Transact-SQL)