例えば ORACLE_HOME 環境変数が "/u01/app/oracle/product/11.1.0/db_1" の場合、出力先は、
/u01/app/oracle/product/11.1.0/db_1/network/log
となります。
しかし、11g からはアラート・ログと同様に、自動診断リポジトリ(ADR)の構造にしたがって出力先が変更されています。
リスナーのログ(listener.log)の出力先
listener.ora の ADR_BASE_ADR_BASE_<LISTENER_NAME> | ORACLE_BASE | 出力先 |
---|---|---|
× | × | <ORACLE_HOME>/log/diag/tnslsnr/trace/ |
× | ○ | <ORACLE_BASE>/diag/tnslsnr/trace/ |
○ | × | <ADR_BASE_<ListenerName>>/diag/tnslsnr/trace/ |
Oracle Net クライアントログ(sqlnet.log)の出力先
sqlnet.ora の ADR_BASE パラメータ、ORACLE_BASE 環境変数によって出力先が変わります。ADR_BASE | ORACLE_BASE | 出力先 |
---|---|---|
× | × | /home/<OS_USERNAME>/oradiag_<OS_USERNAME>/diag/clients/user_<OS_USERNAME>/host_<MASHINE_HASH_VALUE>_<ADR_VERSION>/trace/ |
× | ○ | <ORACLE_BASE>/diag/clients/user_<OS_USERNAME>/host_<MASHINE_HASH_VALUE>_<ADR_VERSION>/trace/ |
○ | × | <ADR_BASE>/oradiag_<OS_USERNAME>/diag/clients/user_<OS_USERNAME>/host_<MASHINE_HASH_VALUE>_<ADR_VERSION>/trace/ |
(ついでに)アラート・ログ(alert_.log)の出力先
初期化パラメータ DIAGNOSTIC_DEST、ORACLE_BASE 環境変数によって出力先が変わります。DIAGNOSTIC_DEST | ORACLE_BASE | 出力先 |
---|---|---|
× | × | <ORACLE_HOME>/log/diag/rdbms/trace/ |
× | ○ | <ORACLE_BASE>/diag/rdbms/trace/ |
○ | × | <BASE>/diag/rdbms/trace/ |
ちなみに、上記の出力先のディレクトリ構造の中で、diag ディレクトリの上位ディレクトリのことは ADR ベース、diag ディレクトリの下位ディレクトリのことは ADR ホームと呼ばれます。
ADR ベースは ADR が管理するファイル群のルート・ディレクトリ、ADR ホームは各製品ごとのルート・ディレクトリということになります。
listener.ora の ADR_BASE_
しかし、ADR ベースを一箇所にまとめたい場合はこれらのパラメータを設定せずに ORACLE_BASE 環境変数が示す場所=ADR ベースになるようにしなければならないようです。
listener.ora の ADR_BASE_
(この辺の仕様がちょっと納得できないところです...)
これらのログやトレースを操作する ADRCI では、SET BASE コマンドを実行することによって ADR ベースを変更することができます。
adrci> SET BASE /u01/app/oracle
そのため、製品ごとに ADR ベースが異なっていても、その配下にあるログやトレースを参照できないわけではないのですが、いちいち切り替なくて済むに越したことはありません。
ということで、現状、ADR ベースは個々の製品のパラメータで設定するのではなく、ORACLE_BASE 環境変数が示す場所にまとめたほうがよさそうです。