Oracle數(shù)據(jù)庫中的日志文件(如alert日志)可以通過設(shè)置自動清理來定期清理。下面是一種可能的方法:
#!/bin/sh
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
$ORACLE_HOME/bin/sqlplus -s / as sysdba <<EOF
alter system switch logfile;
alter system archive log current;
exit;
EOF
find $ORACLE_BASE/diag/rdbms/*/*/trace/alert_* -type f -mtime +7 -exec rm {} \;
這個腳本會在數(shù)據(jù)庫中切換日志文件,并將當(dāng)前日志歸檔。然后查找并刪除7天前的alert日志文件。
將該腳本設(shè)置為定時任務(wù),每天執(zhí)行一次(或根據(jù)需求定制執(zhí)行頻率)。
另外,可以在數(shù)據(jù)庫配置中設(shè)置告警日志文件的最大大小,以控制日志文件的大小??梢允褂靡韵耂QL語句來設(shè)置:
alter system set log_file_name_convert='';
alter system set max_dump_file_size=100M;
這將設(shè)置告警日志文件的最大大小為100MB,并且在達(dá)到該大小時會自動開始新的日志文件。