bg: 最近,在做数据库工作,每个月都需要看很多的数据库预警信息日志,查找里面的ORACLE错误及预警信息,在上万行的文件中查找需要的信息,对于数据库工作人员来说,简直就是在摧残我们的斗志。为了提高斗志的同时提高工作效率,腾出更多的时间做更有意义的事情,发挥个人学习的成果,特采用主机上的AWK 程序编写了一段脚本,将我们关注的ORA信息过滤输出到转储文件,通过转储文件,只查看对我们有价值的信息,这个想法不错吧。
思路(参见程序流程图):
数据库日志错误过滤流程图.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
。。。。。。。
。。。。。。。
。。。。。。。
。。。。。。。
以上信息正是我想要的,再也不用从茫茫日志中寻找它们了,只需要查看转储文件就可以定位数据库异常信息了。
以上。
通过个人的努力,希望能对大家有意义。
由于测试不周,缺陷在所难免,如有问题,请提出。
中文的日志最好不要用这段脚本进行过滤处理,否则会有乱码,以上的日志出自中文环境,乱码比较不爽吧。哈哈。
思路(参见程序流程图):
数据库日志错误过滤流程图.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/