ORACLE DATAGUARDモニタスクリプト


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
"; 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
"; $dbh =   DBI->connect( "dbi:Oracle:$Stantns", "$user", "$passwd", { PrintError => 0 } )   or die "Can't connect to Oracle database: $DBI::errstr
"; $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
"; 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;