Oracle Database Cloud 各種ログのメンテナンス


意外に知られていないのですが、Oracle Database Cloudの自動化(Automated)インスタンスの場合、各種ログのメンテナンスが自動的に行われ、古いログがパージされるように設定されています。

対象となるのは、アラート・ログや、リスナー・ログなどの基本的なファイルから、Oracle Cloudが実行するバックアップ・スクリプトのログ(obkup.log)などについても、それぞれ個別に保存期間が設定されており、必要以上にディスク領域を圧迫しないように設定されています。

実際にログファイルがメンテナンスされる仕組み

Oracle Database Cloud で作成した自動化(Automated)インスタンスの中には、メンテナンス用の各種スクリプトが用意されていますが、ログファイルはその中の /var/opt/oracle/cleandb/cleandblogs.pl という perl スクリプトにて実行されます。
このスクリプトが crond によって毎週1回起動するように設定されています。

実際に /etc/crontab を除いてみると、以下のようなエントリーが記述されています。

/etc/crontab
\# Example of job definition:
\# .---------------- minute (0 - 59)
\# |  .------------- hour (0 - 23)
\# |  |  .---------- day of month (1 - 31)
\# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
\# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
\# |  |  |  |  |
\# *  *  *  *  * user-name command to be executed

(略)

15 03 * * 6 oracle /var/opt/oracle/cleandb/cleandblogs.pl

例えばこの環境では、毎週土曜日の15:03に、定期的に起動されるように設定されています。
この時間は、環境作成時にランダムに設定されますので、環境によって時間は違ってきます。
時間や頻度を変えたい場合には、root権限で /etc/crontab を直接書き換えます。

もし、障害を起こした環境でSR問合せ中など、ログを保存しておきたいような自体が発生した場合には、/etc/crotab を修正してスクリプトが実行されないようにしてください。また、終わった後再びログメンテナンスをオンにすることもお忘れなく。

ログファイルの保持期間の設定

各ログファイルの保持期間は、/var/opt/oracle/cleandb/cleandblog.cfg の中に設定されています。
実際のエントリーは、以下のようになっています。

/var/opt/oracle/cleandb/cleandblog.cfg
#
# cleandblogs.cfg
#
# all values are in days
# ##
AlertRetention=14
ListenerRetention=14
AuditRetentionDB=14
CoreRetention=7
TraceRetention=7
shortpRetention=7
longpRetention=30
LogDirRetention=14
gfLogRetention=14
obkupLogRetention=30

(注)この値は2016年5月に作成したインスタンス(v16.2.3)の初期値です、インスタンス作成のタイミングによって設定は異なる場合がありますので、詳細はお手元のインスタンスでご確認ください

この数値を直接書き換えることで、各ログのパージまでの期間を、インスタンスごとに設定することができます。

各設定値の詳細は、マニュアルに記述があるので詳細はこちらをご覧ください。