重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用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;