イベントの監視と応答
適用対象:SQL Server
Azure SQL Managed Instance
重要
Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance の T-SQL と SQL Server の違いの を参照してください。
SQL Server エージェントは、SQL Server からのメッセージ、特定のパフォーマンス条件、Windows Management Instrumentation (WMI) イベントなど、イベントを監視して自動的に応答できます。
このセクションでは
アラート
アラートの名前付けと、アラートが応答するイベントまたはパフォーマンス条件の選択に関する情報が含まれています。
User-Defined イベント を作成する
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 以上のシステムメッセージエラー。
重大度が 19 未満の特定の sysmessages エラーもログに記録する場合は、sp_altermessage ストアド プロシージャを使用して、"always logged" などのエラーを指定します。
任意の WITH LOG 構文を使用して呼び出される RAISERROR ステートメント。
RAISERROR WITH LOG の使用は、SQL Server のインスタンスから Windows アプリケーション ログに書き込む場合に推奨される方法です。
xp_logeventを使用してログに記録されるすべてのアプリケーション イベント。
手記
ログ アプリケーション イベントはログ領域を消費し、Windows アプリケーション ログが最大サイズを超える可能性があります。 SQL Server イベント情報が失われないように、Windows アプリケーション ログの最大サイズが十分な大きさであることを確認します。
SQL Server がメッセージをログに記録すると、SQL Server エージェント サービスは、SQL Server 管理者によって定義されたアラートとメッセージを比較します。
イベントのソースに関係なく、SQL Server エージェント サービスは、イベントのアラートで指定されたタスクを実行してイベントに応答します。