ORACLE DATAGUARD 监控脚本

发布时间:2020-05-31 20:37:56 作者:aqszhuaihuai
来源:网络 阅读:1875

使用perl来监控ORACLE DATAGUARD脚本

#!/usr/bin/perl

use strict;
use warnings;
use DBI;    # Load the DBI module

my $ZabbixServer = "192.168.3.24";
my $ZabbixPort   = "10051";
my $HOSTNAME     = "ora2";
my $SenderCMD="/usr/local/zabbix/bin/zabbix_sender";

my $Primtns = "test_st";
my $Stantns = "test";

my $KEY          = "Oracled.DG.Status";
my $KEYContent1          = "OK";
my $KEYContent2          = "Failed";
my $LogVal               = 3;

my $user   = "zabbix";
my $passwd = "zabbix";

my $Primseq = 0;
my $Stanseq = 0;

$ENV{"ORACLE_HOME"}='/oracle/product/11.2.0/db_1';
#$ENV{PATH} .= $ENV{PATH} . ':/oracle/product/11.2.0/db_1/bin';



### Perform the connection using the Oracle driver
my $dbh =
  DBI->connect( "dbi:Oracle:$Primtns", "$user", "$passwd", { PrintError => 0 } )
  or die "Can't connect to Oracle database: $DBI::errstr\n";

my $sth = $dbh->prepare(
    "SELECT MAX(SEQUENCE#) MAXSEQ
     FROM V\$ARCHIVED_LOG 
     WHERE RESETLOGS_ID=(
       SELECT   RESETLOGS_ID  FROM V\$DATABASE_INCARNATION
       WHERE STATUS='CURRENT') "
);

$sth->execute;
###
while ( my @recs = $sth->fetchrow_array ) {
    $Primseq = $recs[0];
###
}
### Now, disconnect from the database
$dbh->disconnect
  or warn "Disconnection failed: $DBI::errstr\n";



$dbh =
  DBI->connect( "dbi:Oracle:$Stantns", "$user", "$passwd", { PrintError => 0 } )
  or die "Can't connect to Oracle database: $DBI::errstr\n";

$sth = $dbh->prepare(
    "SELECT MAX(SEQUENCE#) MAXSEQ
     FROM V\$ARCHIVED_LOG 
     WHERE RESETLOGS_ID=(
       SELECT   RESETLOGS_ID  FROM V\$DATABASE_INCARNATION
       WHERE STATUS='CURRENT'
       AND APPLIED='YES') "
);

$sth->execute;
###
while ( my @recs = $sth->fetchrow_array ) {
    $Stanseq = $recs[0];
###
}
### Now, disconnect from the database
$dbh->disconnect
  or warn "Disconnection failed: $DBI::errstr\n";


if($Primseq-$Stanseq>=$LogVal){
    system("$SenderCMD -z $ZabbixServer -p $ZabbixPort -s $HOSTNAME -k $KEY -o $KEYContent2 >/dev/null 2>&1");
    
}else{
    
    system("$SenderCMD -z $ZabbixServer -p $ZabbixPort -s $HOSTNAME -k $KEY -o $KEYContent1 >/dev/null 2>&1");
}

exit;



推荐阅读:
  1. Oracle 11g R2 ADG 监控
  2. dataguard oracle 归档管理脚本

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

oracle dataguard dat %d

上一篇:Oracle 笔记(九)、触发器

下一篇:数据库config.php文件内容解释及替换方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》