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,并且在達到該大小時會自動開始新的日志文件。