対象:WindowsOracle版
Oracle11gより、問題の回避、検出、診断など、Automatic Diagnostic Repository(以下、ADR)機能にて管理されるようになっています。
そのADR機能がデフォルトでは有効で、デフォルトのログの出力先が、「${ORACLE_HOME}\log」となっています。
そのログ出力先フォルダが存在しない為に、OracleClientのログファイルのローテーションによりCPUリソースを圧迫して、発生している可能性があります。
弊社で確認できている事象としまして、desknet’s NEOへアクセスの度に、OracleClientのログ出力先フォルダが存在しないことで、OracleClientのログファイル「log_番号.xml」に
(例)
“Directory does not exist for read/write [C:\app\Administrator\product\11.2.0\client_1\log]”
が出力され続けます。
このログファイルは、1ファイル、10MBでローテーションされ、このタイミングでCPUリソースを消費し負荷を上昇させます。
「log_番号.xml」ファイルが大量にある場合、ローテーションに時間を要し、CPUリソースを占有し続け、負荷が高い状況が継続し、結果、desknet’s NEOへアクセスできない状況になります。
<log_番号.xmlファイル出力対象フォルダ>
C:\Users\Administrator\Oracle\oradiag_xxx\diag\clients\user_xxx\host_xxx\alert
C:\Windows\Temp\oradiag_xxx\diag\clients\user_xxx\host_xxx\alert
[対処方法]
以下の何れかの対応を行います。
1)ログ出力先のフォルダを作成する。
以下のパスのフォルダを作成してください。
${ORACLE_HOME}\log\diag\clients
※OracleClinetデフォルトインストールの場合、以下になります。
「C:\app\Administrator\product\11.2.0\client_1\log\diag\clients」
2)ログを出力しない設定にする。
「sqlnet.ora」ファイルに、「DIAG_ADR_ENABLED=OFF」を追加する。
※OracleClinetデフォルトインストールの場合、
「C:\app\Administrator\product\11.2.0\client_1\network\admin」
フォルダ下に、「sqlnet.ora」ファイルはあります。
メモ帳等、テキストエディターにて編集し、保存してください。
例)
# sqlnet.ora Network Configuration File:
C:\app\Administrator\product\11.2.0\client_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install “Software Only”, this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NONE)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
DIAG_ADR_ENABLED=OFF ・・・・☆追加する
[既存ログの削除方法]
ADRコマンド・インタプリタより行います。
作業を行う場合は、運用を停止してから実施して下さい。
詳細のパージ(削除)方法はOracleのマニュアルをご確認のうえ実施して下さい。
例1)
1)コマンドプロンプト起動します。
2)adrciコマンドを入力します。
C:\Users\Administrator>adrci
3)ADR baseをセットします。
adrci> set base C:\Users\Administrator\Oracle\oradiag_administrator
※ADR_baseは、「diag」フォルダが存在するパスの前までを指定します。
上記は、C:\Users\Administrator\Oracle\oradiag_administrator\diag
のケースです。
パスは、環境によって異なりますので、環境に合わせて設定します。
4)ADR homeを確認します。
adrci> show home
ADR Home = c:\users\administrator\oracle
\oradiag_administrator\diag\clients\user_administrator\host_xxxx:
5)ログをパージ(削除)します。
デフォルトでは、「alert」フォルダログが720時間(30日)
「trace」フォルダログが8760時間(365日)になります。
この設定で良い場合は、以下コマンドを実施します。
adrci>puage
※設定に関係なく、指定した経過時間(分)で削除する場合は以下のコマンドを
実施します。
[1日(1440分)以上経過したログを削除する場合]
adrci>purge -age 1440 -type alert
adrci>exit
例2)
1)コマンドプロンプト起動します。
2)adrciコマンドを入力します。
C:\Users\Administrator>adrci
3)ADR baseをセットします。
adrci> set base C:\Windows\Temp\oradiag_xxx
※ADR_baseは、「diag」フォルダが存在するパスの前までを指定します。
上記は、C:\Windows\Temp\oradiag_xxx\diag
のケースです。
パスは、環境によって異なりますので、環境に合わせて設定します。
4)ADR homeを確認します。(複数ある場合は以下のよう表示されます)
adrci> show home
ADR Homes:
diag\clients\user_xxx\host_684710773_76
diag\clients\user_xxx\host_990435674_76
5)ADR homeを設定します。
adrci> set homepath diag\clients\user_xxx\host_684710773_76
6)ログをパージ(削除)します。
デフォルトでは、「alert」フォルダログが720時間(30日)
「trace」フォルダログが8760時間(365日)になります。
この設定で良い場合は、以下コマンドを実施します。
adrci>puage
※設定に関係なく、指定した経過時間(分)で削除する場合は以下のコマンドを
実施します。
[1日(1440分)以上経過したログを削除する場合]
adrci>purge -age 1440 -type alert
7)2つ目のADR homeを設定します。
adrci> set homepath diag\clients\user_xxx\host_990435674_76
8)ログをパージ(削除)します。
※手順は6)と同じとなります。
※[対処方法]にて、ログフォルダを作成する方法を行った場合、ログのパージ(削除)は定期的に行う運用の計画をしてください。
その際のADR baseは、デフォルトインストールの場合、「C:\app\Administrator\product\11.2.0\client_1\log」になります。
お悩み・疑問は解消されましたでしょうか?
不明な点やまだお困りの点がございましたら、下記よりお問合せください。
クラウド版
通常窓口 平日9時-17時半 (土日祝日を除く):0120-365-800
パッケージ版
平日9時-12時 / 13時-17時半 (土日祝日を除く):0800-500-6330