Tihiroの頭を休めるIT教室

少しだけ頭使って後は根性

Oracleのログを確認したい。

概要

Oracleでトラブった際に、まずはログを確認します。が、いっつも場所が分からなくなるので、ログの出力先と確認方法を調べたメモ。

対象は

  • アラートログ
  • コアファイル
  • トレースログ
  • DDLログ
  • インシデント・ダンプファイル
  • リスナーログ

あとついでに

についても調べました。

環境は

です。

ログの出力先

ADR_BASEまたはADR_HOMEディレクトリ内に出力されるようです。

ADR_BASEについて

ORACLE_BASE変数が設定されている場合、ADR_BASEはデフォルトでORACLE_BASEになります。 ORACLE_BASE変数が設定されていない場合、ADR_BASEはORACLE_HOME/logになります。

ADR_BASEの確認方法

SELECT value FROM v$diag_info WHERE name = 'ADR Base';

です。

ADR_HOMEについて

ADR_HOMEについてはあまり情報がありませんでしたが

$ADR_BASE/diag/rdbms/<データベース名>/< SID >/

となる模様。

ADR_HOMEの確認方法

SELECT value FROM v$diag_info WHERE name = 'ADR Home';

です。

アラートログ

XML形式のアラートログ

下記のSELECT文で確認できます。便利ですね!

SELECT value FROM v$diag_info WHERE name = 'Diag Alert';

出力先は

$ADR_HOME/alert/log.xml

のようです。

テキスト形式のアラートログ

出力先は

$ADR_HOME/trace/alert_< SID >.log

のようです。

トレースログの出力先の確認方法と確認結果

下記SELECT文で調べます。

SELECT value FROM v$diag_info WHERE name = 'Default Trace File';

結果は

$ADR_HOME/trace/< SID >_ora_< PID*1 >.trc

のでした。

コアファイル

$ADR_HOME/cdump

のようです。

DDLログ

$ADR_HOME/log/ddl/

内に保管されていました。

インシデント・ダンプファイル

$ADR_HOME/incident/

に保管されていました。

リスナーログ

$ADR_BASE/diag/tnslsnr

にありました。ADR_BASEなのでご注意。

まとめ

V$DIAG_INFOが面白い。

あと

https://docs.oracle.com/cd/E49329_01/server.121/b71292/refrn10280.htm

を読んだら凄く話は早い。ただしコアファイルの出力先が誤字?*2

*1:プロセスID

*2:cdumpではなくcdumdになってる