Oracle数据库中的日志文件(如alert日志)可以通过设置自动清理来定期清理。下面是一种可能的方法:
#!/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 {} \;
这个脚本会在数据库中切换日志文件,并将当前日志归档。然后查找并删除7天前的alert日志文件。
将该脚本设置为定时任务,每天执行一次(或根据需求定制执行频率)。
另外,可以在数据库配置中设置告警日志文件的最大大小,以控制日志文件的大小。可以使用以下SQL语句来设置:
alter system set log_file_name_convert='';
alter system set max_dump_file_size=100M;
这将设置告警日志文件的最大大小为100MB,并且在达到该大小时会自动开始新的日志文件。