ORACLE DATAGUARD 监控脚本
admin
2023-05-13 11:42:06
0

使用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;



相关内容

热门资讯

外交部发言人就伊朗局势答记者问 问:据报道,特朗普总统访华期间,中美两国元首就中东局势等重大国际和地区问题交换了意见。请问双方是否谈...
强势介入调查座车追踪器疑云,检... 海峡导报综合报道 中国国民党副主席李乾龙日前遭媒体爆料,去年11月座车遭安装追踪器和收到恐吓信,事后...
没上专机的库克,提前到了北京 特朗普这次访华代表团的工商界人士中,英伟达创始人兼首席执行官(CEO)黄仁勋是在最后一刻登上了美国总...
女子总遇见“面熟”大姐一查竟是...   64岁的郑招莲说起这话时,语气里藏不住感慨与遗憾:“我经常在街上遇到我的姐姐,只是觉得面熟,但从...
618性价比折叠屏手机推荐:G... 很多人认为折叠屏价格高、性价比低,其实618大促期间,高端折叠屏也能拥有高性价比。三星Galaxy ...
特朗普访华带豪华商业天团,排兵... 特朗普此次访华带来了一支覆盖芯片、半导体、新能源、航空、金融、农业等多个关键领域的豪华商业代表团。北...
原创 腾... 5月13日,腾讯控股发布2026年Q1财报。 总收入1964.6亿元,同比增长9%;经调整净利润67...
三星离场,国产电视赢了吗? 「核心提示」 一块屏幕的战争:国产电视如何改写客厅权力格局? 作者 | 詹方歌 编辑 | 邢...
无窗槛墙的幕墙是什么意思 最佳回答 无窗槛墙的幕墙意思就是没有窗榻的那种墙,平时的房屋建设中一般都会在墙上留有窗户的孔洞,那...
移动空调低频噪音 1、可能是外机支架的安装不稳或者是组合支架中固定螺丝没有拧紧导致变形,就会造成空调外机摆放不平整,空...