やったこと
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配下のメンテナンスって、従来どのプロセスが行っていたのだろう。。