イベントの監視と応答

適用対象:SQL ServerAzure SQL Managed Instance

重要

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

SQL Server エージェントを使用して、 からのメッセージ、特定のパフォーマンス条件、WMI (Windows Management Instrumentation) イベントなどのイベント SQL Serverを監視したり、イベントに自動的に応答したりできます。

このセクションの内容

警告
警告の命名、および警告が応答するイベントやパフォーマンス条件の選択について説明します。

ユーザー定義イベントの作成
SQL Serverによってあらかじめ定義されているイベント以外のイベントを作成する方法について説明します。

オペレーター
ジョブが失敗または成功したときに通知を送信するために SQL Server エージェントで使用できる、管理者の別名の作成について説明します。

イベントの監視と応答について

イベントへの自動応答を 警告と呼びます。 1 つ以上のイベントの警告を定義して、 SQL Server エージェントがイベントの発生に応答する方法を指定できます。 警告は、管理者に通知するか、ジョブを実行するか、またはその両方を行ってイベントに応答できます。 警告は、別のコンピューターの Microsoft Windows アプリケーション ログにイベントを転送することもできます。 たとえば、重大度レベル 19 のイベントが発生した場合に、オペレーターに直ちに通知されるように指定できます。 データベース管理者は警告を定義することにより、より効果的に SQL Serverを監視および管理できます。

SQL Server エージェントは、警告が定義されているイベントにのみ応答します。 SQL Server エージェントでによってイベントを監視するために使用される方法は、イベントの種類によって異なります。

SQL Server エージェントの警告がパフォーマンス カウンターに定義されていると、そのパフォーマンス カウンターは SQL Server エージェントによって直接監視されます。 WMI イベントでは、 SQL Server エージェントにより WMI イベントのイベント クエリが登録されます。

SQL Serverエージェントでは、 SQL Server からのメッセージに応答するために Windows アプリケーション ログが監視されます。 SQL Server エージェントは、このログに示されるメッセージだけに応答できます。 既定では、SQL Server によって、次のメッセージが Windows アプリケーション ログに記録されます。

  • 重大度レベルが 19 以上の sysmessages エラー。

    重大度レベルが 19 より低い特定の sysmessages エラーもログに記録する場合は、sp_altermessage ストアド プロシージャを使用して、"常にログ記録されています" などのエラーを指定します。

  • WITH LOG 構文を使用して実行されるすべての RAISERROR ステートメント。

    RAISERROR WITH LOG は、SQL Server のインスタンスから Windows アプリケーション ログに書き込むのに推奨できる手段です。

  • xp_logevent を使用してログ記録されたアプリケーション イベント。

    Note

    アプリケーション イベントのログ記録により、ログ領域が使用され、その結果 Windows アプリケーション ログの最大サイズを超える可能性があります。 SQL Server のイベント情報を失わないように、Windows アプリケーション ログの最大サイズが十分大きいかどうかを確認してください。

SQL Server によってメッセージがログ記録されると、 SQL Server エージェント サービスでは、 SQL Server 管理者が定義した警告とメッセージが比較されます。

SQL Server エージェント サービスは、イベントのソースが何であっても、イベントの警告で指定されたタスクを実行することによりそのイベントに応答します。

参照

sp_altermessage