过滤ORACEL错误日志并统计每种错误出现的次数再按错误次数进行倒序排序

本帖最后由 lixiaxin200319 于 2014-8-28 21:43 编辑

一、脚本代码
#脚本名为filter_alert_v2.sh
#过滤出2014年7月1日之后的错误日志,ORACLE_SID=orcl
sed -n '/... Jul .. ..:..:.. 2014/,$'p $ORACLE_BASE/admin/*/bdump/alert_$ORACLE_SID.log | awk '
$1~/Mon|Tue|Wen|Thu|Fri|Sat|Sun/{flag=1;string=$0}
$1~/ORA-|OSD-|Error/{if(flag==1) {print"\n";print "----------------------------------------";print string;flag=0}print $0}' >filter_alert_"$ORACLE_SID"_`date +"%Y%m%d"`.log


#过滤出2014年7月1日之后的所有告警日志信息
sed -n '/... Jul .. ..:..:.. 2014/,$'p $ORACLE_BASE/admin/*/bdump/alert_$ORACLE_SID.log >alert_"$ORACLE_SID"_`date +"%Y%m%d"`.log




#去除告警日志过滤后的重复数据
awk '$0 ~ /---/ {print t;t="" ;print "\n\n\n"}
     $0 !~ /---/  && $1 !~ /Mon|Tue|Wen|Thu|Fri|Sat|Sun/  {t=t"\t"$0}
     ' filter_alert_orcl.log > filter.log



#在去除重复时进行了统计,统计每一种错误类型出现多少次,并进行了倒序排序
grep -v "^$" filter.log | sort | uniq -c | sort -k1,1nr |uniq|awk '{n=split($0,arr,"\t") ;for (i=1;i<=n;i++) {print arr}}' >  filter2.log





###############################################################
#下面的代码是把错误日志对应的追踪文件复制出来
###############################################################
#去除追踪文件完整路径?
grep "\.trc" filter_alert_orcl.log |awk '{ gsub(/:/,"") }{print $4}'>rdbms.trc
#去除重复
awk '! a[$0]++' rdbms.trc > rdbms2.trc

#生成复制追踪文件的脚本,把追踪文件复制到当前目录下的 rdbms_trc中。
awk '{gsub(/\/oracle/,"cp /oracle")}{print $0 "  rdbms_trc/"}' rdbms2.trc > cp_rdbms_trc.sh


if [ ! -d rdbms_trc ]
then 
    mkdir rdbms_trc
fi


chmod 755 cp_rdbms_trc.sh


./cp_rdbms_trc.sh


二、执行脚本的效果
#使用ORACLE用户执行脚本
$./filter_alert_v2.sh

#查看filter2.log文件,错误日志已经按类型进行了去除重复,并统计了每种类型的错误信息出现的次数,并且按照错误类型出现的次数进行了倒序排序,这样一眼就可以看出哪种错误出现了多少次。内容如下:(错误信息前面的数字,是错误出现次数的统计值)

1874 
Errors in file /oracle/admin/orcl/bdump/orcl_arc0_9991.trc:
ORA-16055: 已拒绝 FAL 请求




1872 

Errors in file /oracle/admin/orcl/bdump/orcl_arc0_9991.trc:
ORA-00308: 无法打开归档日志 '/backup/arch/2_222824_623520482.dbf'
ORA-27037: 无法获得文件状态


  11 

Errors in file /oracle/admin/orcl/bdump/orcl_j000_9912.trc:
ORA-12012: 自动执行作业 65 出错
ORA-06550: 第 1 行, 第 105 列: 
ORA-06550: 第 1 行, 第 96 列: 


请使用浏览器的分享功能分享到微信等