oracle过滤上万行,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/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值