oracle目录应急清理-爱代码爱编程
清理错误位置的归档日志
检查$ORACLE_HOME/dbs
下是否有归档文件:
ls $ORACLE_HOME/dbs/arch* | wc -l
检查和修改归档位置:
--检查归档位置
SQL> archive log list;
--修改归档位置
SQL> alter system set log_archive_dest_1='location=/oradata/arch' scope=both;
移动或清理$ORACLE_HOME/dbs
下的归档文件:
mv $ORACLE_HOME/dbs/arch* /oradata/arch/
如果不是归档位置错误,优先进行扩容,无法扩容再考虑清理oracle目录。
清理30天前的监听告警日志
清理/oracle/app/oracle/diag/tnslsnr/<hostname>/listener/alert
目录。可以清理30天以前的log_xxxx.xml
,注意不能删除log.xml
。
# 检查文件个数和占用空间
ls $ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert | wc -l
du -sh $ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert
# 清理文件
find $ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert -mtime +30 -name "log_*.xml" | xargs rm -rf
清理监听日志
清理$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/trace/listener.log
。
# 检查文件大小
du -sh $ORACLE_BASE/diag/tnslsnr/<hostname>/listener/trace/listener.log
# 备份并压缩监听日志
cd $ORACLE_BASE/diag/tnslsnr/<hostname>/listener/trace/
cp listener.log listener.log.bak
gzip listener.log.bak > listener.log.bak.gz
# 清空监听日志
echo '' > listener.log
清理30天以前的trace文件
# 检查文件个数和占用空间
ls $ORACLE_BASE/diag/rdbms/<db_unique_name>/<ORACLE_SID>/trace/ | wc -l
du -sh $ORACLE_BASE/diag/rdbms/<db_unique_name>/<ORACLE_SID>/trace/
# 清理文件
find $ORACLE_BASE/diag/rdbms/<db_unique_name>/<ORACLE_SID>/trace/ -mtime +30 -type f | xargs rm -rf
清理30天以前的审计日志
# 检查文件个数和占用空间
du -sh $ORACLE_BASE/admin/<ORACLE_SID>/adump
ls $ORACLE_BASE/admin/<ORACLE_SID>/adump | wc -l
# 清理文件
find $ORACLE_BASE/admin/<ORACLE_SID>/adump -type f -mtime +30 | xargs rm -rf