awk 美化过滤ORACLE alert 日志信息(dba 高效工作的好脚本)

bg: 最近,在做数据库工作,每个月都需要看很多的数据库预警信息日志,查找里面的ORACLE错误及预警信息,在上万行的文件中查找需要的信息,对于数据库工作人员来说,简直就是在摧残我们的斗志。为了提高斗志的同时提高工作效率,腾出更多的时间做更有意义的事情,发挥个人学习的成果,特采用主机上的AWK 程序编写了一段脚本,将我们关注的ORA信息过滤输出到转储文件,通过转储文件,只查看对我们有价值的信息,这个想法不错吧。

思路(参见程序流程图):
fj.png数据库日志错误过滤流程图.pdf

由于无法上传脚本文件,特将AWK脚本文件do.cmd 内容粘贴出来,参见如下:

BEGIN { ORA_FLG=0 }{
    if(ORA_FLG == 0 )
    {
        if(match($2,"ORA-")){
             printf("%s \n",$0);
             ORA_FLG =1;
         }
     }else{
         printf("%s \n",$0);
         if(match($2,"Mon") || match($2,"Tue") || match($2,"Wed") || match($2,"Thu") || match($2,"Fri") || match($2,"Sat") || match($2,"Sun") )
             ORA_FLG = 0;
        }
}

请将以上内容保存到本地的do.cmd 文件中。

调用方法:
#cd $DownloadingDir
#cp $DownloadingDir/do.cmd $WorkingDir
#cat -n alert.log | sort -nr | awk -f do.cmd | sort > $OutputFile

说明:
$DownloadingDir         附件下载路径
$WorkingDir             日志文件所在目录
$OutputFile             处理后的ORACLE预警信息文件

调用举例:
# ls -lrt
总用量 380
-rw-rw-r-- 1 jichuanlau jichuanlau 351134  6月 23 09:02 alert.log
-rw-rw-r-- 1 jichuanlau jichuanlau    372  6月 23 14:32 do.cmd
-rw-rw-r-- 1 jichuanlau jichuanlau  30260  6月 23 14:51 数据库日志错误过滤流程图.pdf

# cat -n alert.log | sort -nr | awk -f do.cmd | sort> myalert.log

# ls -lrt
总用量 392
-rw-rw-r-- 1 jichuanlau jichuanlau 351134  6月 23 09:02 alert.log
-rw-rw-r-- 1 jichuanlau jichuanlau    372  6月 23 14:32 do.cmd
-rw-rw-r-- 1 jichuanlau jichuanlau  30260  6月 23 14:51 数据库日志错误过滤流程图.pdf
-rw-rw-r-- 1 jichuanlau jichuanlau   8449  6月 23 15:58 myalert.log

# cat myalert.log
  1045    Tue May 06 22:00:07 2014   1045    Tue May 06 22:00:07 2014
  1046    Errors in file /oracle/oracle/diag/rdbms/***/***/trace/***_j000_15335898.trc:
  1047    ORA-12012: ????????? "ORACLE_OCM"."MGMT_CONFIG_JOB_2_1" ????
  1048    ORA-29280: ??·????Ч
  1049    ORA-06512: ?? "ORACLE_OCM.MGMT_DB_LL_METRICS", line 2436
  1050    ORA-06512: ?? line 1
  1175    Wed May 07 22:00:04 2014
  1176    Errors in file /oracle/oracle/diag/rdbms/***/***/trace/***_j001_15860142.trc:
  1177    ORA-12012: ????????? "ORACLE_OCM"."MGMT_CONFIG_JOB_2_1" ????
  1178    ORA-29280: ??·????Ч
  1179    ORA-06512: ?? "ORACLE_OCM.MGMT_DB_LL_METRICS", line 2436
  1180    ORA-06512: ?? line 1
  。。。。。。。
  。。。。。。。
  。。。。。。。
  。。。。。。。

以上信息正是我想要的,再也不用从茫茫日志中寻找它们了,只需要查看转储文件就可以定位数据库异常信息了。

以上。

通过个人的努力,希望能对大家有意义。

由于测试不周,缺陷在所难免,如有问题,请提出。
中文的日志最好不要用这段脚本进行过滤处理,否则会有乱码,以上的日志出自中文环境,乱码比较不爽吧。哈哈。





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

转载于:http://blog.itpub.net/23628945/viewspace-1191911/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值