千家信息网

ORACLE DATAGUARD 监控脚本

发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,使用perl来监控ORACLE DATAGUARD脚本#!/usr/bin/perluse strict;use warnings;use DBI; # Load the DBI modulem
千家信息网最后更新 2025年11月06日ORACLE DATAGUARD 监控脚本

使用perl来监控ORACLE DATAGUARD脚本

#!/usr/bin/perluse strict;use warnings;use DBI;    # Load the DBI modulemy $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 drivermy $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;



0