ITPub博客

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

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

原创 Oracle 作者:lixiaxin200319 时间:2014-08-28 14:43:32 0 删除 编辑
本帖最后由 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 列: 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21582653/viewspace-1259515/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORACLE DG 主-备-备
请登录后发表评论 登录
全部评论

注册时间:2012-02-10

  • 博文量
    66
  • 访问量
    208497