LoginSignup
4
6

More than 3 years have passed since last update.

19c新機能:リスナーログのローテーション

Posted at

やったこと

19c新機能で、リスナー・ログがデフォルトで自動ローテーションされるようになったと聞き、試してみた。

結果

  • 19cでは、リスナー・ログが自動でローテートされる(デフォルトで300MB)。だが、削除はされないので、LOG_FILE_NUM_xxxは設定したほうが良い。

  • LOG_FILE_SIZE_で指定するサイズは、trace/listener.logではなくalert/log.xmlのサイズを基準にローテーションされている。( ドキュメントに記載はないが、検証の結果そうなった )

  • この動作を無効 ( 従来の方式 ) にする方法は不明 ( ドキュメント上見当たらない ) 。極端に大きい値を指定すれば実質的に無効にできるが、log.xmlもローテートされなくなる。そして、19cでは、リスナーのDIAG_HOMEにポリシーが設定されていない。。

  • listener.oraに指定するパラメータ

    • LOG_FILE_SIZE_ (デフォルト:300MB)
    • LOG_FILE_NUM_ (デフォルトなし:無制限)
  • この動作を念頭に、従来は独自実装していたログ・ローテーション実装を見直す必要がありそう。だが、謎が多い。

参考ドキュメント

Database New Features Guide
Net Services Administrator's Guide
Database Net Servicesリファレンス

検証内容

デフォルト
→ 300MBでローテート

# while :; do  date; find . -type f -name "*log*" -ls; sleep 30; done
Tue Oct  8 16:06:44 UTC 2019
9044635 90552 -rw-r-----   1 grid     oinstall 92713096 Oct  8 16:06 ./trace/listener.log
9044634 305724 -rw-r-----   1 grid     oinstall 313050724 Oct  8 16:06 ./alert/log.xml
Tue Oct  8 16:07:14 UTC 2019
9044635 91224 -rw-r-----   1 grid     oinstall 93403952 Oct  8 16:06 ./trace/listener_1.log
9047715  752 -rw-r-----   1 grid     oinstall   767914 Oct  8 16:07 ./trace/listener.log
9044634 307212 -rw-r-----   1 grid     oinstall 314573018 Oct  8 16:06 ./alert/log_1.xml ★ log.xmlが300MBを超過したタイミングでローテート
9047705 1656 -rw-r-----   1 grid     oinstall  1693285 Oct  8 16:07 ./alert/log.xml

サイズ10MB、個数3個に設定。
→ 10MBでローテート。アーカイブを3つまで保持する。

$ tail listener.ora
・・・
LOG_FILE_SIZE_LISTENER = 10
LOG_FILE_NUM_LISTENER  = 3

# while :; do date;  find . -type f -name "*log*" |xargs ls -ltr ; sleep 30; done
Tue Oct  8 16:16:21 UTC 2019
-rw-r----- 1 grid oinstall 314573018 Oct  8 16:06 ./alert/log_1.xml
-rw-r----- 1 grid oinstall  93403952 Oct  8 16:06 ./trace/listener_1.log
-rw-r----- 1 grid oinstall   7160188 Oct  8 16:14 ./trace/listener_2.log
-rw-r----- 1 grid oinstall  18221485 Oct  8 16:14 ./alert/log_2.xml
-rw-r----- 1 grid oinstall   4483958 Oct  8 16:16 ./trace/listener.log
-rw-r----- 1 grid oinstall   9877915 Oct  8 16:16 ./alert/log.xml
Tue Oct  8 16:16:51 UTC 2019
-rw-r----- 1 grid oinstall 314573018 Oct  8 16:06 ./alert/log_1.xml
-rw-r----- 1 grid oinstall  93403952 Oct  8 16:06 ./trace/listener_1.log
-rw-r----- 1 grid oinstall   7160188 Oct  8 16:14 ./trace/listener_2.log
-rw-r----- 1 grid oinstall  18221485 Oct  8 16:14 ./alert/log_2.xml
-rw-r----- 1 grid oinstall   4760371 Oct  8 16:16 ./trace/listener_3.log
-rw-r----- 1 grid oinstall  10485952 Oct  8 16:16 ./alert/log_3.xml ★ log.xmlが10MBになったタイミングで切り替え
-rw-r----- 1 grid oinstall   1192174 Oct  8 16:16 ./trace/listener.log
-rw-r----- 1 grid oinstall   2627008 Oct  8 16:16 ./alert/log.xml
・・・
Tue Oct  8 16:18:51 UTC 2019
-rw-r----- 1 grid oinstall  7160188 Oct  8 16:14 ./trace/listener_2.log ★archiveを3つまで保存。古いのは削除
-rw-r----- 1 grid oinstall 18221485 Oct  8 16:14 ./alert/log_2.xml
-rw-r----- 1 grid oinstall  4760371 Oct  8 16:16 ./trace/listener_3.log ★
-rw-r----- 1 grid oinstall 10485952 Oct  8 16:16 ./alert/log_3.xml
-rw-r----- 1 grid oinstall 10485930 Oct  8 16:18 ./alert/log_4.xml
-rw-r----- 1 grid oinstall  4693659 Oct  8 16:18 ./trace/listener_4.log ★
-rw-r----- 1 grid oinstall   561487 Oct  8 16:18 ./trace/listener.log
-rw-r----- 1 grid oinstall  1381423 Oct  8 16:18 ./alert/log.xml

あれ、log.xmlを基準にするってことは、ADRのポリシーどうなってるの?
→ ポリシーが設定されていない!

$adrci
adrci> set home diag/tnslsnr/xxxx/listener
adrci> show control

ADR Home = /u01/app/grid/diag/tnslsnr/xxxx/listener:
*************************************************************************
0 rows fetched

このブログ (New Size Based ADR Purge Policy in 12.2) を見て、12.2からサイズベースのポリシーができたのか!と思ってみてみてもやっぱり設定されていない。


$adrci
adrci> set home diag/tnslsnr/xxxx/listener
adrci> select * from adr_control_aux;

ADR Home = /u01/app/grid/diag/tnslsnr/xxxx/listener:
*************************************************************************
0 rows fetched

18cまでは?設定されている。。

$adrci
adrci> set home diag/tnslsnr/xxxx/listener
adrci> show control

ADR Home = /u01/app/18.0.0.0/grid_base/diag/tnslsnr/xxxx/listener:
*************************************************************************
ADRID                SHORTP_POLICY        LONGP_POLICY         LAST_MOD_TIME                            LAST_AUTOPRG_TIME                        LAST_MANUPRG_TIME                        ADRDIR_VERSION       ADRSCHM_VERSION      ADRSCHMV_SUMMARY     ADRALERT_VERSION     CREATE_TIME
-------------------- -------------------- -------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- ----------------------------------------
1914059842           720                  8760                 2019-07-03 13:02:32.425031 +09:00                                                                                          1                    2                    110                  1                    2019-07-03 13:02:32.425031 +09:00
1 row fetched

19cからリスナーのADRのポリシーが設定されなくなった???
そもそも、diag/tnslsn配下のメンテナンスって、従来どのプロセスが行っていたのだろう。。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6