143 DBMS_SERVER_ALERT

DBMS_SERVER_ALERTパッケージを使用すると、特定のサーバーのメトリックがしきい値を超えた場合にアラートを発行するようにOracle Databaseサーバーを構成できます。大量の事前定義済メトリックに対して、警告のしきい値およびクリティカルのしきい値を設定できます。

警告のしきい値に達すると、重大度レベル5のアラートが生成されます。クリティカルのしきい値に達すると、重大度レベル1のアラートが生成されます。

この章の内容は次のとおりです。

143.1 DBMS_SERVER_ALERTのセキュリティ・モデル

DBMS_SERVER_ALERTパッケージを使用するには、ユーザーにDBAロールまたはIMP_FULL_DATABASEロールが必要です。

143.2 DBMS_SERVER_ALERTのオブジェクト・タイプ

リストされたオブジェクト・タイプに対するメトリックを、オブジェクトごとに限定します。

表143-1 定数として定義するオブジェクト・タイプ

定数 説明

OBJECT_TYPE_SYSTEM

各インスタンスについてシステム・レベルで収集されるメトリック。

OBJECT_TYPE_FILE

ファイル・レベルで収集されるメトリック。AVG_FILE_READ_TIMEメトリックおよびAVG_FILE_WRITE_TIMEメトリックに使用します。

OBJECT_TYPE_SERVICE

サービス・レベルで収集されるメトリック。現在は、ELAPSED_TIME_PER_CALLおよびCPU_TIME_PER_CALLが収集されます。

OBJECT_TYPE_TABLESPACE

表領域レベルで収集されるメトリック。

注意: ディクショナリ管理の表領域はサポートされていません。

OBJECT_TYPE_EVENT_CLASS

待機イベント・クラス・レベルで収集されるメトリック。現在サポートされているメトリックは、AVG_USERS_WAITINGおよびDB_TIME_WAITINGです。

OBJECT_TYPE_SESSION

セッション・レベルで収集されるメトリック。現在は、BLOCKED_USERSのみが収集されます。しきい値はインスタンス・レベルにのみ設定できます(すなわち、このタイプのメトリックにしきい値を設定する際には、オブジェクト名を指定できません)。

OBJECT_TYPE_WRCLIENT

リプレイ・クライアントのパフォーマンスを監視するために、リプレイ時に使用されるメトリックのグループ(WCR_...)を参照します。

143.3 DBMS_SERVER_ALERTの関係演算子

関係比較演算子を指定して、任意のメトリックの値がしきい値の設定範囲を超えていないかどうかを決定できます。サーバーでは次の演算子がサポートされます。

表143-2 定数として定義する関係演算子

定数 説明

OPERATOR_CONTAINS

メトリック値がしきい値のリストのエントリと一致する場合は、エラーとみなされます。

OPERATOR_DO_NOT_CHECK

メトリック値はしきい値と比較されず、アラートは生成されません。この演算子は、メトリックに対するアラートを無効にする場合に使用します。

OPERATOR_EQ

しきい値と等しいメトリック値はエラーとみなされます。

OPERATOR_GE

しきい値以上のメトリック値はエラーとみなされます。

OPERATOR_GT

しきい値を超えるメトリック値はエラーとみなされます。

OPERATOR_LE

しきい値以下のメトリック値はエラーとみなされます。

OPERATOR_LT

しきい値未満のメトリック値はエラーとみなされます。

OPERATOR_NE

しきい値と等しくないメトリック値はエラーとみなされます。

143.4 DBMS_SERVER_ALERTのサポートされるメトリック

次のメトリックがサポートされます。メトリックのすべての内部名は、パッケージの定数として提供されます。

表143-3 サポートされるメトリックのリスト

メトリック名(内部) メトリック名(外部) 単位

AVG_FILE_READ_TIME

ファイル読取り平均時間

マイクロ秒

AVG_FILE_WRITE_TIME

ファイル書込み平均時間

マイクロ秒

AVG_USERS_WAITING

待機イベント・クラスの待機中ユーザーの平均数

セッション数

BLOCKED_USERS

一部のセッションによってブロックされたユーザーの数

ユーザー数

BRANCH_NODE_SPLITS_SEC

ブランチ・ノード分割(毎秒)

分割数/秒

BRANCH_NODE_SPLITS_TXN

ブランチ・ノード分割(トランザクション単位)

分割数/トランザクション

BUFFER_CACHE_HIT

バッファ・キャッシュ・ヒット(%)

キャッシュ・アクセスに占めるパーセント

CONSISTENT_CHANGES_SEC

整合性のある変更(毎秒)

変更数/秒

CONSISTENT_CHANGES_TXN

整合性のある変更(トランザクション単位)

変更数/トランザクション

CONSISTENT_GETS_SEC

整合性のある取得(毎秒)

取得数/秒

CONSISTENT_GETS_TXN

整合性のある取得(トランザクション単位)

取得数/トランザクション

CR_BLOCKS_CREATED_SEC

作成済CRブロック(毎秒)

ブロック数/秒

CR_BLOCKS_CREATED_TXN

作成済CRブロック(トランザクション単位)

ブロック数/トランザクション

CR_RECORDS_APPLIED_SEC

適用済CR UNDOレコード(毎秒)

レコード数/秒

CR_RECORDS_APPLIED_TXN

適用済CR UNDOレコード(トランザクション単位)

レコード数/トランザクション

CURSOR_CACHE_HIT

カーソル・キャッシュ・ヒット(%)

ソフト解析に占めるパーセント

DATABASE_WAIT_TIME

データベース待機時間(%)

全データベース時間に占めるパーセント

DATABASE_CPU_TIME

データベースCPU時間(%)

全データベース時間に占めるパーセント

DB_BLKGETS_SEC

DBブロック取得(毎秒)

取得数/秒

DB_BLKGETS_TXN

DBブロック取得(トランザクション単位)

取得数/トランザクション

DB_TIME_WAITING

待機イベント・クラスで待機中に消費したデータベース時間のパーセント

データベース時間に占めるパーセント

DBWR_CKPT_SEC

DBWRチェックポイント(毎秒)

チェックポイント数/秒

DISK_SORT_SEC

ディスクのソート(毎秒)

ソート数/秒

DISK_SORT_TXN

ディスクのソート(トランザクション単位)

ソート数/トランザクション

ELAPSED_TIME_PER_CALL

各サービスのユーザー・コールごとの経過時間

マイクロ秒/コール

ENQUEUE_DEADLOCKS_SEC

エンキュー・デッドロック(毎秒)

デッドロック数/秒

ENQUEUE_DEADLOCKS_TXN

エンキュー・デッドロック(トランザクション単位)

デッドロック数/トランザクション

ENQUEUE_REQUESTS_SEC

エンキュー要求(毎秒)

要求数/秒

ENQUEUE_REQUESTS_TXN

エンキュー要求(トランザクション単位)

要求数/トランザクション

ENQUEUE_TIMEOUTS_SEC

エンキュー・タイムアウト(毎秒)

タイムアウト数/秒

ENQUEUE_TIMEOUTS_TXN

エンキュー・タイムアウト(トランザクション単位)

タイムアウト数/トランザクション

ENQUEUE_WAITS_SEC

エンキュー待機(毎秒)

待機数/秒

ENQUEUE_WAITS_TXN

エンキュー待機(トランザクション単位)

待機数/トランザクション

EXECUTE_WITHOUT_PARSE

解析なしの実行

全実行に占めるパーセント

FULL_INDEX_SCANS_SEC

高速全索引スキャン(毎秒)

スキャン数/秒

FULL_INDEX_SCANS_TXN

高速全索引スキャン(トランザクション単位)

スキャン数/トランザクション

GC_AVG_CR_GET_TIME

グローバル・キャッシュCR要求

ミリ秒

GC_AVG_CUR_GET_TIME

グローバル・キャッシュ現行要求

ミリ秒

GC_BLOCKS_CORRUPT

グローバル・キャッシュ・ブロック破損

ブロック

GC_BLOCKS_LOST

グローバル・キャッシュ・ブロック消失

ブロック

HARD_PARSES_SEC

ハード解析(毎秒)

解析数/秒

HARD_PARSES_TXN

ハード解析(トランザクション単位)

解析数/トランザクション

LEAF_NODE_SPLITS_SEC

リーフ・ノード分割(毎秒)

分割数/秒

LEAF_NODE_SPLITS_TXN

リーフ・ノード分割(トランザクション単位)

分割数/トランザクション

LIBRARY_CACHE_HIT

ライブラリ・キャッシュ・ヒット(%)

キャッシュ・アクセスに占めるパーセント

LIBRARY_CACHE_MISS

ライブラリ・キャッシュ・ミス(%)

キャッシュ・アクセスに占めるパーセント

LOGONS_CURRENT

現在のログオン数

ログオン数

LOGONS_SEC

累積ログオン(毎秒)

ログオン回数/秒

LOGONS_TXN

累積ログオン(トランザクション単位)

ログオン数/トランザクション

LONG_TABLE_SCANS_SEC

全表スキャン(毎秒)

スキャン数/秒

LONG_TABLE_SCANS_TXN

全表スキャン(トランザクション単位)

スキャン数/トランザクション

OPEN_CURSORS_SEC

累積オープン・カーソル(毎秒)

カーソル数/秒

MEMORY_SORTS_PCT

メモリー内ソート(%)

ソートに占めるパーセント

NETWORK_BYTES_SEC

ネットワーク・バイト(毎秒)

バイト数/秒

OPEN_CURSORS_CURRENT

現在のカーソル数

カーソル数

OPEN_CURSORS_TXN

累積オープン・カーソル(トランザクション単位)

カーソル数/トランザクション

OS_SCHED_CPU_WAIT_TIME

オペレーティング・システム・スケジューラCPU待機(時間)

マイクロ秒

PARSE_FAILURES_SEC

解析失敗(毎秒)

解析数/秒

PARSE_FAILURES_TXN

解析失敗(トランザクション単位)

解析数/トランザクション

PGA_CACHE_HIT

PGAキャッシュ・ヒット(%)

PGA内で処理されるバイト数のパーセント

PHYS_DESGN_WAIT_SCT

物理設計待機(セッション数)

セッション数

PHYSICAL_READS_SEC

物理読取り(毎秒)

読取り数/秒

PHYSICAL_READS_TXN

物理読取り(トランザクション単位)

読取り数/トランザクション

PHYSICAL_WRITES_SEC

物理書込み(毎秒)

書込み数/秒

PHYSICAL_WRITES_TXN

物理書込み(トランザクション単位)

書込み数/トランザクション

PHYSICAL_READS_DIR_SEC

直接物理読取り(毎秒)

読取り数/秒

PHYSICAL_READS_DIR_TXN

直接物理読取り(トランザクション単位)

読取り数/トランザクション

PHYSICAL_WRITES_DIR_SEC

直接物理書込み(毎秒)

書込み数/秒

PHYSICAL_WRITES_DIR_TXN

直接物理書込み(トランザクション単位)

書込み数/トランザクション

PHYSICAL_READS_LOB_SEC

直接LOB物理読取り(毎秒)

読取り数/秒

PHYSICAL_READS_LOB_TXN

直接LOB物理読取り(トランザクション単位)

読取り数/トランザクション

PHYSICAL_WRITES_LOB_SEC

直接LOB物理書込み(毎秒)

書込み数/秒

PHYSICAL_WRITES_LOB_TXN

直接LOB物理書込み(トランザクション単位)

書込み数/トランザクション

PROCESS_LIMIT_PCT

プロセス制限使用率(%)

最大値に占めるパーセント

PX_DOWNGRADED_SEC

低下したパラレル操作(毎秒)

操作数/秒

PX_DOWNGRADED_25_SEC

25%以上の低下(毎秒)

操作数/秒

PX_DOWNGRADED_50_SEC

50%以上の低下(毎秒)

操作数/秒

PX_DOWNGRADED_75_SEC

75%以上の低下(毎秒)

操作数/秒

PX_DOWNGRADED_SER_SEC

シリアルまで低下(毎秒)

操作数/秒

RB_RECORDS_APPLIED_SEC

適用済ロールバックUNDOレコード(毎秒)

レコード数/秒

RB_RECORDS_APPLIED_TXN

適用済ロールバックUNDOレコード(トランザクション単位)

レコード数/トランザクション

REDO_ALLOCATION_HIT

REDOログ割当てのヒット

REDO割当てに占めるパーセント

REDO_GENERATED_SEC

生成済REDO(毎秒)

REDOログのバイト数/秒

REDO_GENERATED_TXN

生成済REDO(トランザクション単位)

REDOログのバイト数/トランザクション

REDO_WRITES_SEC

REDO書込み(毎秒)

書込み数/秒

REDO_WRITES_TXN

REDO書込み(トランザクション単位)

書込み数/トランザクション

RECURSIVE_CALLS_SEC

再帰的コール(毎秒)

コール数/秒

RECURSIVE_CALLS_TXN

再帰的コール(トランザクション単位)

コール数/トランザクション

RESPONSE_TXN

応答(トランザクション単位)

秒/トランザクション

ROWS_PER_SORT

1回のソートで処理する行数

行数/ソート

SESS_LOGICAL_READS_SEC

セッションの論理読取り(毎秒)

読取り数/秒

SESS_LOGICAL_READS_TXN

セッションの論理読取り(トランザクション単位)

読取り数/トランザクション

SESSION_CPU_SEC

データベースCPU(毎秒)

マイクロ秒/秒

SESSION_CPU_TXN

データベースCPU(トランザクション単位)

マイクロ秒/トランザクション

SESSION_LIMIT_PCT

セッション制限使用率(%)

最大値に占めるパーセント

SHARED_POOL_FREE_PCT

共有プール空き領域(%)

共有プールに占めるパーセント

SOFT_PARSE_PCT

ソフト解析(%)

全解析に占めるパーセント

SQL_SRV_RESPONSE_TIME

サービス応答(実行単位)

TABLESPACE_PCT_FULL

表領域の領域使用率

全領域に占めるパーセント

TABLESPACE_BYT_FREE

表領域の領域使用バイト数

空き領域(KB)

TOTAL_TABLE_SCANS_SEC

表スキャン合計(毎秒)

スキャン数/秒

TOTAL_TABLE_SCANS_TXN

表スキャン合計(トランザクション単位)

スキャン数/トランザクション

TOTAL_INDEX_SCANS_SEC

索引スキャン合計(毎秒)

スキャン数/秒

TOTAL_INDEX_SCANS_TXN

索引スキャン合計(トランザクション単位)

スキャン数/トランザクション

TOTAL_PARSES_SEC

解析合計(毎秒)

解析数/秒

TOTAL_PARSES_TXN

解析合計(トランザクション単位)

解析数/トランザクション

USER_COMMITS_SEC

ユーザー・コミット(毎秒)

コミット数/秒

USER_COMMITS_TXN

ユーザー・コミット(トランザクション単位)

コミット数/トランザクション

USER_ROLLBACKS_SEC

ユーザー・ロールバック(毎秒)

ロールバック数/秒

USER_ROLLBACKS_TXN

ユーザー・ロールバック(トランザクション単位)

ロールバック数/トランザクション

USER_CALLS_SEC

ユーザー・コール(毎秒)

コール数/秒

USER_CALLS_TXN

ユーザー・コール(トランザクション単位)

コール数/トランザクション

USER_CALLS_PCT

ユーザー・コール(%)

全コールに占めるパーセント

USER_LIMIT_PCT

ユーザー制限使用率(%)

最大値に占めるパーセント

WCR_AVG_IO_LAT

平均IO応答時間(WRCクライアント用)

ミリ秒

WCR_PCPU

CPU上のリプレイ・スレッドのパーセント(WRCクライアント用)

全リプライ・スレッドに占めるパーセント

WCR_PIO

IOを実行するリプレイ・スレッドのパーセント(WRCクライアント用)

全リプライ・スレッドに占めるパーセント

143.5 DBMS_SERVER_ALERTサブプログラムの要約

この表は、DBMS_SERVER_ALERTサブプログラムを示し、簡単に説明しています。

表143-4 DBMS_SERVER_ALERTパッケージのサブプログラム

サブプログラム 説明

EXPAND_MESSAGEファンクション

アラート・メッセージを拡張します。

GET_THRESHOLDプロシージャ

指定メトリックの現行のしきい値設定を取得します。

SET_THRESHOLDプロシージャ

指定メトリックに対して、警告のしきい値およびクリティカルのしきい値を設定します。

143.5.1 EXPAND_MESSAGEファンクション

このファンクションは、アラート・メッセージを拡張します。

構文

DBMS_SERVER_ALERT.EXPAND_MESSAGE(
   user_language            IN   VARCHAR2,
   message_id               IN   NUMBER,
   argument_1               IN   VARCHAR2,
   argument_2               IN   VARCHAR2,
   argument_3               IN   VARCHAR2,
   argument_4               IN   VARCHAR2,
   argument_5               IN   VARCHAR2)
  RETURN VARCHAR2;

パラメータ

表143-5 EXPAND_MESSAGEファンクションのパラメータ

パラメータ 説明

user_language

現行セッションの言語。

message_id

アラート・メッセージのID。

argument_1

アラート・メッセージ内の第1引数。

argument_2

アラート・メッセージ内の第2引数。

argument_3

アラート・メッセージ内の第3引数。

argument_4

アラート・メッセージ内の第4引数。

argument_5

アラート・メッセージ内の第5引数。

143.5.2 GET_THRESHOLDプロシージャ

このプロシージャは、指定メトリックの現行のしきい値設定を取得します。

構文

DBMS_SERVER_ALERT.GET_THRESHOLD(
   metrics_id               IN   BINARY_INTEGER,
   warning_operator         OUT  BINARY_INTEGER,
   warning_value            OUT  VARCHAR2,
   critical_operator        OUT  BINARY_INTEGER,
   critical_value           OUT  VARCHAR2,
   observation_period       OUT  BINARY_INTEGER,
   consecutive_occurrences  OUT  BINARY_INTEGER,
   instance_name            IN   VARCHAR2,
   object_type              IN   BINARY_INTEGER,
   object_name              IN   VARCHAR2);

パラメータ

表143-6 GET_THRESHOLDプロシージャのパラメータ

パラメータ 説明

metrics_id

メトリックの内部名。「サポートされるメトリック」を参照してください。

warning_operator

実際の値を警告のしきい値と比較するための演算子。

warning_value

警告のしきい値。

critical_operator

実際の値をクリティカルのしきい値と比較するための演算子。

critical_value

クリティカルのしきい値。

observation_period

メトリック値の算出結果をしきい値設定と照合して検証する時間。

consecutive_occurrences

メトリック値がしきい値に何回違反したらアラートを発行するかを規定する、監視期間の数。

instance_name

しきい値が設定されるインスタンスの名前。データベース全体のアラートの場合、NULLを指定します。このパラメータをNULL以外の値に設定する場合は、GV$INSTANCEビューに表示されているいずれかのINSTANCE_NAME値に設定する必要があります。

object_type

OBJECT_TYPE_SYSTEMまたはOBJECT_TYPE_SERVICE

object_name

オブジェクトの名前。

使用上の注意

このサブプログラムは、instance_nameパラメータの値が意味のある値または有効な値であるかどうかをチェックしないことに注意してください。

143.5.3 SET_THRESHOLDプロシージャ

このプロシージャは、指定メトリックに対して、警告のしきい値およびクリティカルのしきい値を設定します。

構文

DBMS_SERVER_ALERT.SET_THRESHOLD(
   metrics_id               IN   BINARY_INTEGER,
   warning_operator         IN   BINARY_INTEGER,
   warning_value            IN   VARCHAR2,
   critical_operator        IN   BINARY_INTEGER,
   critical_value           IN   VARCHAR2,
   observation_period       IN   BINARY_INTEGER,
   consecutive_occurrences  IN   BINARY_INTEGER,
   instance_name            IN   VARCHAR2,
   object_type              IN   BINARY_INTEGER,
   object_name              IN   VARCHAR2);

パラメータ

表143-7 SET_THRESHOLDプロシージャのパラメータ

パラメータ 説明

metrics_id

メトリックの内部名。サポートされるメトリックを参照してください。

warning_operator

実際の値を警告のしきい値と比較するための演算子(OPERATOR_GEなど)。「関係演算子」を参照してください。

warning_value

警告のしきい値。警告のしきい値が設定されていない場合、NULLを指定します。値のリストをOPERATOR_CONTAINSに対して指定できます。

critical_operator

実際の値をクリティカルのしきい値と比較するための演算子。関係演算子を参照してください。

critical_value

クリティカルのしきい値。設定しない場合はNULLを指定します。値のリストをOPERATOR_CONTAINSに対して指定できます。

observation_period

メトリック値の算出結果をしきい値設定と照合して検証する時間。有効な範囲は、1から60分です。

consecutive_occurrences

メトリック値がしきい値に何回違反したらアラートを発行するかを規定する、監視期間の数。

instance_name

しきい値が設定されるインスタンスの名前。データベース全体のアラートの場合、NULLを指定します。

object_type

「オブジェクト・タイプ」を参照してください。

object_name

オブジェクトの名前。SYSTEMに対してはNULLを指定します。

使用上の注意

このサブプログラムは、instance_nameパラメータの値が意味のある値または有効な値であるかどうかをチェックしないことに注意してください。有効なインスタンスを特定できない名前を渡すと、DBA_THRESHOLDSビューでしきい値の設定が表示されている場合でも、そのしきい値はいずれのインスタンスでも使用されません。例外は小文字のdatabase_wideで、インスタンス名にNULLを渡す場合と同じ結果が得られます(後者の方法をお薦めします)。