データベースに接続されたセッションに関係する情報を監視する項目です。
セッションの監視を行う項目には、以下があります。
監視項目 | しきい値 | mount状態での監視(*) | |
単位 | 設定可能範囲 | ||
ユーザセッション数の割合(%) | 0 ~ 100 | ○ | |
接続ユーザ数の割合(%) | 0 ~ 100 | ○ | |
接続ユーザ数 | 0 ~ 2147483647 | ||
セッション接続時間(sec:秒) | 0 ~ 2147483647 | ○ | |
セッションアイドル時間(sec:秒) | 0 ~ 2147483647 | ○ | |
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
各環境で監視したいユーザセッション数の割合の範囲をしきい値に設定してください。
なし
なし
FOR-01028 ユーザセッション数の割合がx%になりました。(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 |
[しきい値の下限]
=警告を上げたいセッション数(プロセス数)÷最大セッション数(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ユーザごとに、接続ユーザ数をカウントします。
v$session
v$parameter
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」に対する接続ユーザ数の割合をしきい値に設定してください。
なし
なし
(A)FOR-01030 接続ユーザ数の割合がy%になりました。 ([コンテナ名.]Oracleユーザ名)
(B)FOR-01030 接続ユーザ数がxになりました。([コンテナ名.]Oracleユーザ名)
(*)コンテナ名は、監視対象のOracleがCDBの場合のみ表示されます。
■セッション接続時間
データベースに長時間接続しているセッションを発見します。
v$session
v$session
v$containers
(1)以下の値をOracleから取得します。
現在の時間・・・[a]
ログイン時間・・・[b]
Oracleユーザ名(補足情報)
セッション識別子(補足情報)
セッション・シリアル番号(補足情報)
(2)以下の計算式に当てはめてセッション接続時間を求めます。
セッション接続時間[sec] = [a]-[b]
セッション接続時間(sec:秒)
0 ~ 2147483647
各環境で監視したいセッション接続時間の範囲をしきい値に設定してください。
なし
なし
FOR-01031 セッション接続時間がxsecになりました。(info)
USERNAME=[<コンテナ名>.]<Oracleユーザ名>,
LOGON=<ログイン時間>,
SID=<セッション識別子>,
SERIAL#=<セッション・シリアル番号>
(*)コンテナ名は、監視対象のOracleがCDBの場合のみ表示されます。
■セッションアイドル時間
ユーザが最後に処理を実行した時から経過した時間を監視して、長時間使用していないセッションを発見します。
v$session
v$session
v$containers
以下の値をOracleから取得します。
セッションアイドル時間(ユーザが最後に処理を実行した時から経過した時間)
Oracleユーザ名(補足情報)
セッション識別子(補足情報)
セッション・シリアル番号(補足情報)
セッションアイドル時間(sec:秒)
0 ~ 2147483647
各環境で監視したいセッションアイドル時間の範囲をしきい値に設定してください。
なし
なし
FOR-01032 セッションアイドル時間がxsecになりました。(info)
USERNAME=[<コンテナ名>.]<Oracleユーザ名>,
SID=<セッション識別子>,
SERIAL#=<セッション・シリアル番号>
(*)コンテナ名は、監視対象のOracleがCDBの場合のみ表示されます。
■SQL文の実行でセッションが使用するCPU時間
ユーザ・コールの開始から終了までにセッションが使用するCPU時間が多いSQL文を監視します。
v$sesstat
v$statname
v$sqlarea
v$session
v$sesstat
v$statname
v$sqlarea
v$session
v$containers
以下の値をOracleから取得します。
ユーザ・コールの開始から終了までにセッションが使用するCPU時間
このカーソルの親に対するハンドルのアドレス(補足情報)
カレント・カーソルのSQLテキスト(補足情報)
CPU使用時間(msec:ミリ秒)
0 ~ 2147483647
各環境で監視したいSQL文の実行でセッションが使用するCPU時間の範囲をしきい値に設定してください。
なし
なし
FOR-01034 SQL文の実行でセッションが使用するCPU時間がxmsecになりました。(info)
ADDRESS=<このカーソルの親に対するハンドルのアドレス>,
[DB=<コンテナ名>,]
SQL="<カレント・カーソルのSQLテキストの最初の100文字>"
(*)コンテナ名は、監視対象のOracleがCDBの場合のみ表示されます。