2005年09月09日

警告

○ 警告プロセス
1. 警告発生の元となるイベントの発生
2. イベントが Windows アプリケーションログに書き込まれる
3. Windows アプリケーションログがイベントが発生したことを SQL Server エージェントに通知
4.
 
SQL Server エージェントがキャッシュされている msdb..sysalerts システムテーブル内に定義されている警告とエラーを比較
5. SQL Server エージェントが警告に応答
  − msdb..sysnotifications システムテーブルを確認して電子メールメッセージを送信
  − msdb..sysoperators システムテーブルを確認して通知を送信するオペレータを特定

○ アプリケーションログへのイベント書き込み
SQL Server エージェントサービス開始時にイベントビューアサービスに登録
SQL Server がアプリケーションログに書き込むイベント
  − 重大度レベル 19 〜 25 の SQL Server エラー
  sp_addmessage または sp_aletrmessage システムストアドプロシージャで定義されたエラー
  RAISERROR WITH LOG ステートメントの実行
  xp_logevent 拡張ストアドプロシージャ実行
アプリケーションログに SQL Server のイベントが書き込まれると SQL Server エージェントに通知

○ SQL Server エラーに応答する警告の作成
エラーに応答する警告作成時はエラー番号またはエラーレベルを指定
  1イベントで1警告を発生
Enterprise Manager または sp_add_alert システムストアドプロシージャで警告を作成可
定義済み警告は msdb..sysalerts システムテーブルに格納 → キャッシュ管理
エラー番号での警告の定義
  Windows アプリケーションログにエラー番号を書き込む必要あり
 
 
master..message システムテーブルに格納されている任意のエラー番号(システム定義警告)およびユーザー定義エラー番号で警告を定義
  1つのエラー番号で複数の警告を定義可
    ※ 各警告は特定の1データベースのみもしくは全データベースで適用
  全データベースに適用する警告作成時はエラーメッセージの内容が適切かどうか確認
  エラー番号に特定のエラーメッセージテキストを定義可
エラー重大度レベルでの警告の定義
  重大度レベル 19 〜 25 のエラーはアプリケーションログに自動的に書き込み
  重大度レベル 20 〜 25 は致命的エラー → 通知するオペレータを定義する必要あり
  定義済み警告を使用する場合、通知するオペレータの指定および「Demo:...」文字を削除してから使用
  全データベースまたは特定データベースに警告作成可
  重大度レベルに特定のエラーメッセージテキストを定義可
  重大度レベル 18 以上のエラーは電子メールエイリアス全体に警告を送信するようにする
指定した重大度レベル以上の未処理イベントメッセージおよび全未処理イベントメッセージを転送可
  Enterprise Manager → SQL Server エージェントのプロパティ → [詳細設定]タブ

○ ユーザー定義エラーに応答する警告の作成
エラーメッセージの作成
  Enterprise Manager または sp_addmessage システムストアドプロシージャで作成
    ⇒ Enterprise Manager → サーバーのプロパティ → [すべてのタスク] → [SQL Server メッセージの管理]
    sp_addmessage エラー番号, エラーレベル, 'メッセージ'
  ユーザー定義エラー番号は 50000 より大きく設定
    ← 50000 より小さいエラー番号は定義済み SQL Server エラーで予約済み
  ユーザー定義エラーはすべて master..sysmessage システムテーブルに格納
  エラーメッセージには特定の詳細情報をキャプチャするパラメータを含めることが可
  エラーメッセージは設定中に選択した言語で表示 → 多言語のメッセージも作成可
  警告を発生させるメッセージの場合はアプリケーションログにエラーメッセージを書き込む必要あり
データベースアプリケーションからのエラー発生
  RAISERROR ステートメントの実行 → ストアドプロシージャやトリガで実行
        RAISERROR (エラー番号, エラーレベル, 状態)
  パラメータの変数を宣言

○ パフォーマンス条件警告
Windows パフォーマンスモニタで定義した SQL Server パフォーマンス条件に対応する警告
設定されたしきい値を超えた場合に警告発生
作成可能なオブジェクト
  Access Methods
  Buffer Manager
  Cache Manager
  Databases
  Locks
  SQL Statistics
パフォーマンスデータは1分間に数回の定期的提供のため、警告発行に遅延発生
  応答時間遅延を少なく設定する
  パフォーマンス条件のしきい値を変更する

○ 緊急時のオペレータ指定
定義されているオペレータに警告通知を行えなかった場合のために指定
  警告の応答で問題の通知方法による通知が定義されている場合
  問題の通知方法のオペレータがすべて非番の場合
  緊急時のオペレータが定義される場合
  SQL Server エージェントのメールセッションが開始している場合
Enterprise Manager → SQL Server エージェントのプロパティ → [警告システム]タブで設定
緊急のオペレータ指定時の考慮点
  オペレータ情報はキャッシュに格納 → msdb データベースへの接続にかかわらずオペレータに警告通知
  オペレータは1つのみ定義可
  オペレータ作成後、割り当てられたオペレータ削除は不可
posted by w@ko at 18:44|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。