Linux上Oracle日志管理实操指南
一 日志类型与定位
二 告警日志与监听日志的安全轮转与清理
LG=alert_${ORACLE_SID}.log
BDUMP_DIR=$ORACLE_BASE/diag/rdbms/$(echo $ORACLE_SID | tr '[:upper:]' '[:lower:]')/${ORACLE_SID}/trace
mkdir -p $BDUMP_DIR/bak
cp $BDUMP_DIR/$LG $BDUMP_DIR/bak/${LG}.bak.$(date +%F).gz
gzip -9c $BDUMP_DIR/bak/${LG}.bak.$(date +%F).gz
> $BDUMP_DIR/$LG
grep -i ORA- $BDUMP_DIR/$LG > $BDUMP_DIR/bak/ORA_errors_$(date +%F).loglsnrctl <<EOF
set log_status off
EOF
mv $ORACLE_HOME/network/log/listener.log $ORACLE_HOME/network/log/listener_$(date +%F).log
> $ORACLE_HOME/network/log/listener.log
lsnrctl <<EOF
set log_status on
EOF
set password。三 归档重做日志的备份与清理
rman target /
CROSSCHECK ARCHIVELOG ALL;
DELETE EXPIRED ARCHIVELOG ALL;
# 删除 7 天前已完成的归档
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
# 或按序列号保留最近 N 个
# DELETE ARCHIVELOG FROM SEQUENCE <start_seq> UNTIL SEQUENCE <end_seq>;
EXIT
四 审计与跟踪文件的生命周期管理
# 审计文件
find $ORACLE_BASE/admin/${ORACLE_SID}/adump -name "*.aud" -mtime +2 -delete
# 跟踪文件
find $ORACLE_BASE/admin/${ORACLE_SID}/bdump -name "*.trc" -mtime +2 -delete
find $ORACLE_BASE/admin/${ORACLE_SID}/udump -name "*.trc" -mtime +2 -delete
五 自动化与集中化实践
/u01/app/oracle/diag/tnslsnr/*/trace/listener.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0640 oracle oinstall
sharedscripts
postrotate
lsnrctl <<< "set log_status off"
lsnrctl <<< "set log_status on"
endscript
}