oracle 告警日志 过大,oracle 告警日志(alert log)按日期查看

#!/usr/bin/perl

use Time::Local;

$alert_sql="select d.value||'/alert_'|| e.instance_name||'.log' background_dump_dest

from v\\\$parameter d,v\\\$instance e

where d.name='background_dump_dest'

and rownum<2;";

$ver_sql="select substr(version,1,4) version from v\\\$instance;";

$ALERT_FILE=exec_sql($alert_sql);

$DB_VERSION=exec_sql($ver_sql);

check_main();

sub help()

{

print "usage:\n";

print "get_alert 0                       --get today\'s alert log.\n";

print "get_alert 2                       --get alert log from 2 days ago to now.\n";

print "get_alert 2010-09-01              --get alert log from 2010-09-01 to now.\n";

print "get_alert 2010-09-01 2010-10-01   --get alert log between 2010-09-01 and 2010-10-01.\n";

exit 1;

}

sub get_date

{

($p1)=@_;

@ds_array=split(/-/,$p1);

$seconds=0;

if(@ds_array==1)

{

$seconds=(time() - 86400*$p1);

}

else

{

$seconds = timelocal(0,0,0,$ds_array[2],$ds_array[1]-1,$ds_array[0]-1900);

}

return $seconds;

}

sub check_main()

{

if(@ARGV<1)

{

help();

}

$start_row=get_rownum(get_date($ARGV[0]));

$end_row=`sed -n '\$=' "$ALERT_FILE";`;

if(@ARGV>=2)

{

$end_row=get_rownum(get_date($ARGV[1]))-1;

}

chomp $end_row;

if($start_row>0 && $end_row>$start_row)

{

print `sed -n "$start_row,${end_row}p" $ALERT_FILE ;`;

}

}

sub get_rownum

{

$ds=scalar localtime($_[0]);

($p1,$p2)=(substr($ds,0,10),substr($ds,20,24));

##

if(substr($p1,8,1) ==" " && $DB_VERSION =="11.2")

{

substr($p1,8,1,"0");

}

print "$p1 $p2 \n";

##

$rownum=`egrep -n -i "$p1" $ALERT_FILE | grep "$p2" | head -1; `;

@rs=split(/:/,$rownum);

return $rs[0];

}

sub exec_sql

{

($p1)=@_;

$res=`

sqlplus -s / as sysdba <

set head off

set pagesize 0

set echo off

$p1

exit;

EOF

`;

$/="";

chomp($res);

return $res;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值