ページの先頭行へ戻る
Systemwalker for Oracle 運用ガイド
FUJITSU Software

C.2 セッションの監視

データベースに接続されたセッションに関係する情報を監視する項目です。

セッションの監視を行う項目には、以下があります。

監視項目

しきい値

mount状態での監視(*)

単位

設定可能範囲

■ユーザセッション数の割合

ユーザセッション数の割合(%)

0 ~ 100

■接続ユーザ数

接続ユーザ数の割合(%)

0 ~ 100

接続ユーザ数

0 ~ 2147483647

■セッション接続時間

セッション接続時間(sec:秒)

0 ~ 2147483647

■セッションアイドル時間

セッションアイドル時間(sec:秒)

0 ~ 2147483647

■SQL文の実行でセッションが使用するCPU時間

CPU使用時間(msec:ミリ秒)

0 ~ 2147483647

(*) ○:監視可能


ユーザセッション数の割合

接続可能な最大セッション数に対するOracleに接続しているユーザセッション数の割合を監視します。

ポイント

  • ユーザセッション数とする値 = 同時ユーザ接続数+バックグラウンド・プロセス数

  • 最大セッション数=初期化パラメタ「sessions」で指定された値

[アクセスするディクショナリ・ビュー]

v$session
v$parameter
v$license

[監視方法]

(1)以下の値をOracleから取得します。

  • 同時ユーザ接続数・・・[a]

  • バックグラウンド・プロセス数・・・[b]

  • 最大セッション数(初期化パラメタ「sessions」で指定された値)・・・[c]

  • インスタンス起動時以降の同時ユーザセッションの最大数(補足情報)

    (2)以下の計算式に当てはめてユーザセッション数の割合を求めます(小数点以下切り上げ)。
    ユーザセッション数の割合[%] = (([a]+[b])÷[c])×100

[しきい値単位]

ユーザセッション数の割合(%)

[しきい値条件]

0 ~ 100

[しきい値設定]

各環境で監視したいユーザセッション数の割合の範囲をしきい値に設定してください。

[Oracle推奨しきい値]

なし

[Systemwalker for Oracleデフォルトしきい値]

なし

[メッセージ]

FOR-01028 ユーザセッション数の割合がx%になりました。(info)

info

USER_SESSION=<同時ユーザ接続数>,
BACKGROUND=<バックグラウンド・プロセス数>,
MAX_SESSION=<最大セッション数>,
SESSIONS_HIGHWATER=<インスタンス起動時からの最大同時ユーザ接続数>

注意

ユーザセッション数の割合」の監視を行うの注意事項

  • この監視のためのセッションもユーザセッション数としてカウントされます。

  • 再帰セッション数を考慮していないため、現在のセッション数と最大セッション数の割合が100%になる手前でも、Oracleエラー(ORA-00018)が発生する可能性があります。再帰セッション数を考慮してしきい値を設定してください(例:再帰セッション数を全体の約10%とする場合は、しきい値の下限を90%より下で設定してください)。

  • 専用サーバ構成の場合、現在のセッション数と最大セッション数の割合が100%になる手前でも、Oracleエラー(ORA-00020)が発生する可能性があります。
    これは以下のOracleの仕様によるためです。

    • Oracle8iよりsessionsの最小値がデフォルト値 (1.1×processes+5)に 変更になったため、sessionsの値はprocessesの値より必ず大きくなる。

    • 専用サーバ構成ではセッション数分サーバプロセスを使用する。

このことから、専用サーバ構成の場合は最大セッション数(初期化パラメタsessions)ではなく、最大プロセス数(初期化パラメタprocesses)を考慮してしきい値を算出する必要があります。

ユーザセッション数の割合の監視のしきい値の設定例

最大セッション数sessionsに対するユーザセッション数の割合が95%を超えた場合に警告メッセージを通知したい場合(再帰セッション数を全体の約10%とした場合)の設定例を示します。

環境例を以下とします。

sessions=555
processes=500

専用サーバ構成の場合

[しきい値の下限]
=警告を上げたいセッション数(プロセス数)÷最大セッション数(sessions)
=(しきい値の下限×processes×再帰セッション数を考慮した割合)÷sessions
=0.95×500×0.9÷555
=0.770...

設定すべき条件:[しきい値]77~100(%)、[重要度]警告


共有サーバ構成の場合

[しきい値の下限]
=しきい値の下限×再帰セッション数を考慮した割合
=0.95×0.9
=0.855

設定すべき条件:[しきい値]85~100(%)、[重要度]警告


接続ユーザ数

データベースに現在接続しているOracleユーザ(スキーマ・ユーザ)ごとに、ユーザ数または、初期化パラメタ「sessions」に対する接続ユーザごとの割合を監視します。

ただし、この監視のためのデータベースへの接続も接続ユーザ数としてカウントされます。

ポイント

監視対象のOracleがマルチテナント・コンテナ・データベースである場合、各コンテナのOracleユーザごとに、接続ユーザ数をカウントします。

[アクセスするディクショナリ・ビュー]
監視対象のOracleがマルチテナント・コンテナ・データベース(CDB)ではない場合

v$session
v$parameter

監視対象のOracleがマルチテナント・コンテナ・データベース(CDB)である場合

v$session
v$system_parameter
v$containers

[監視方法]

以下の値をOracleから取得します。

  • データベースに現在接続しているOracleユーザ名

  • Oracleユーザ名ごとのデータベースに現在接続しているユーザ数

  • 最大セッション数(初期化パラメタ「sessions」で指定された値)

ポイント

監視対象のOracleがマルチテナント・コンテナ・データベースの場合の初期化パラメタ「sessions」について

監視対象のOracleがマルチテナント・コンテナ・データベース(CDB)の場合、初期化パラメタ「sessions」はコンテナごとに個別に取得します。

  • CDBのルートの場合

    CDBのルートに設定された初期化パラメタを取得します。

  • プラガブル・データベース(PDB)の場合

    初期化パラメタ「sessions」をPDBに対して明示的に設定している場合、PDBに設定された初期化パラメタを取得します。明示的に設定していない場合、CDBのルートに設定された初期化パラメタを取得します。

[しきい値単位]

(A)接続ユーザ数の割合(%)
(B)接続ユーザ数

[しきい値条件]

(A)0 ~ 100
(B)0 ~ 2147483647

[しきい値設定]

各環境で監視したい接続ユーザ数の値の範囲、または、初期化パラメタ「sessions」に対する接続ユーザ数の割合をしきい値に設定してください。

[Oracle推奨しきい値]

なし

[Systemwalker for Oracleデフォルトしきい値]

なし

[メッセージ]

(A)FOR-01030 接続ユーザ数の割合がy%になりました。 ([コンテナ名.]Oracleユーザ名)
(B)FOR-01030 接続ユーザ数がxになりました。([コンテナ名.]Oracleユーザ名)

(*)コンテナ名は、監視対象のOracleがCDBの場合のみ表示されます。


セッション接続時間

データベースに長時間接続しているセッションを発見します。

[アクセスするディクショナリ・ビュー]
監視対象のOracleがマルチテナント・コンテナ・データベース(CDB)ではない場合

v$session

監視対象のOracleがマルチテナント・コンテナ・データベース(CDB)である場合

v$session
v$containers

[監視方法]

(1)以下の値をOracleから取得します。

  • 現在の時間・・・[a]

  • ログイン時間・・・[b]

  • Oracleユーザ名(補足情報)

  • セッション識別子(補足情報)

  • セッション・シリアル番号(補足情報)

(2)以下の計算式に当てはめてセッション接続時間を求めます。
セッション接続時間[sec] = [a]-[b]

[しきい値単位]

セッション接続時間(sec:秒)

[しきい値条件]

0 ~ 2147483647

[しきい値設定]

各環境で監視したいセッション接続時間の範囲をしきい値に設定してください。

[Oracle推奨しきい値]

なし

[Systemwalker for Oracleデフォルトしきい値]

なし

[メッセージ]

FOR-01031 セッション接続時間がxsecになりました。(info)

info

USERNAME=[<コンテナ名>.]<Oracleユーザ名>,
LOGON=<ログイン時間>,
SID=<セッション識別子>,
SERIAL#=<セッション・シリアル番号>

(*)コンテナ名は、監視対象のOracleがCDBの場合のみ表示されます。


セッションアイドル時間

ユーザが最後に処理を実行した時から経過した時間を監視して、長時間使用していないセッションを発見します。

[アクセスするディクショナリ・ビュー]
監視対象のOracleがマルチテナント・コンテナ・データベース(CDB)ではない場合

v$session

監視対象のOracleがマルチテナント・コンテナ・データベース(CDB)である場合

v$session
v$containers

[監視方法]

以下の値をOracleから取得します。

  • セッションアイドル時間(ユーザが最後に処理を実行した時から経過した時間)

  • Oracleユーザ名(補足情報)

  • セッション識別子(補足情報)

  • セッション・シリアル番号(補足情報)

[しきい値単位]

セッションアイドル時間(sec:秒)

[しきい値条件]

0 ~ 2147483647

[しきい値設定]

各環境で監視したいセッションアイドル時間の範囲をしきい値に設定してください。

[Oracle推奨しきい値]

なし

[Systemwalker for Oracleデフォルトしきい値]

なし

[メッセージ]

FOR-01032 セッションアイドル時間がxsecになりました。(info)

info

USERNAME=[<コンテナ名>.]<Oracleユーザ名>,
SID=<セッション識別子>,
SERIAL#=<セッション・シリアル番号>

(*)コンテナ名は、監視対象のOracleがCDBの場合のみ表示されます。


SQL文の実行でセッションが使用するCPU時間

ユーザ・コールの開始から終了までにセッションが使用するCPU時間が多いSQL文を監視します。

[アクセスするディクショナリ・ビュー]
監視対象のOracleがマルチテナント・コンテナ・データベース(CDB)ではない場合

v$sesstat
v$statname
v$sqlarea
v$session

監視対象のOracleがマルチテナント・コンテナ・データベース(CDB)である場合

v$sesstat
v$statname
v$sqlarea
v$session
v$containers

[監視方法]

以下の値をOracleから取得します。

  • ユーザ・コールの開始から終了までにセッションが使用するCPU時間

  • このカーソルの親に対するハンドルのアドレス(補足情報)

  • カレント・カーソルのSQLテキスト(補足情報)

[しきい値単位]

CPU使用時間(msec:ミリ秒)

[しきい値条件]

0 ~ 2147483647

[しきい値設定]

各環境で監視したいSQL文の実行でセッションが使用するCPU時間の範囲をしきい値に設定してください。

[Oracle推奨しきい値]

なし

[Systemwalker for Oracleデフォルトしきい値]

なし

[メッセージ]

FOR-01034 SQL文の実行でセッションが使用するCPU時間がxmsecになりました。(info)

info

ADDRESS=<このカーソルの親に対するハンドルのアドレス>,
[DB=<コンテナ名>,]
SQL="<カレント・カーソルのSQLテキストの最初の100文字>"

(*)コンテナ名は、監視対象のOracleがCDBの場合のみ表示されます。