返回顶部
首页 > 资讯 > 精选 >SHELL脚本如何检查Oracle DG备库是否已经应用归档
  • 629
分享到

SHELL脚本如何检查Oracle DG备库是否已经应用归档

2023-06-06 05:06:22 629人浏览 安东尼
摘要

小编给大家分享一下shell脚本如何检查oracle DG备库是否已经应用归档,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!自动检查Oracle DG备库是否已经

小编给大家分享一下shell脚本如何检查oracle DG备库是否已经应用归档,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

自动检查Oracle DG备库是否已经应用归档的shell脚本:

PS:本脚本需要先创建table:ARC_NOT_REPLY_LOG,这个表是用来存放记录的,如果不需要存放记录的话,可以将shell脚本的insert删掉。
ARC_NOT_REPLY_LOG 创建脚本:

CREATE TABLE ORAM.ARC_NOT_REPLY_LOG(  HOSTNAME         VARCHAR2(50 BYTE),  NAME             VARCHAR2(100 BYTE),  SEQUENCE         NUMBER,  APPLIED          VARCHAR2(3 BYTE),  COMPLETioN_TIME  VARCHAR2(50 BYTE),  ADD_TIME         DATE                         DEFAULT SYSDATE)

shell脚本内容:

#!/bin/bash#by Dbabc.net 2012/02/02#User specific environment and startup programs#if [ -f ~/.bash_profile ]; then. ~/.bash_profilefiexport DBAEMaiL=dbabc@dbabc.netexport ORACLE_SID=dbabcexport IP='10.8.8.1'export SMTP='smtp.dbabc.net'export FRUSER='dba@dbabc.net'export BCCUSER='dba@dbabc.net'export USERPWD='pwd'VALUE=`$ORACLE_HOME/bin/sqlplus -S /nolog <<EOFset heading off feedback off pagesize 0 verify off echo off numwidth 4connect / as sysdbaselect count(*) from v\\$arcHived_log where applied='NO';exitEOF`if [ "$VALUE" -gt 0 ]; then$ORACLE_HOME/bin/sqlplus -S /nolog > arc_not_reply.log <<EOFset heading off feedback off pagesize 0 verify off echo offset lines 200col name fORMat a60connect / as sysdbaalter session set nls_date_format='YYYY-MM-DDHH24:MI:SS';select '$IP',name,sequence#,applied,completion_time from v\$archived_log where applied='NO';exitEOFcat arc_not_reply.log|rev|awk {'print $1" "$2" "$3" "$4" "$5'} | rev |awk {'print "insert into ARC_NOT_REPLY_LOG(hostname,name,SEQUENCE,applied,COMPLETION_TIME) values(#"$1"#,#"$2"#,"$3",#"$4"#,#"$5"#);"'} |grep -v '##' | grep -v '#on#' | sed "s/#/'/g" |sed "s/%//g"| sed "s/ip/"${v_hostip}"/g" >ARC_NOT_REPLY_LOG.sql;#echo "insert into ARC_NOT_REPLY_LOG(hostname,name,SEQUENCE#,applied,COMPLETION_TIME) values ( '${INTV1}', '${INTV2},'${INTV3}', '${INTV4}', '${INTV5}');" >ARC_NOT_REPLY_LOG.sql;$ORACLE_HOME/bin/sqlplus /nolog <<EOFconnect oram/oram@10.8.8.4:1521/yqpt@ARC_NOT_REPLY_LOG.sqlcommit;exit;EOF/usr/local/bin/sendEmail -f $FRUSER -t ${DBAEMAIL} -bcc $BCCUSER -s $SMTP -u "$IP arclog not reply" -o message-file=arc_not_reply.log -xu "$FRUSER" -xp "$USERPWD"exitelseecho `date +'%F %T'`" All the archive log have replyed" >arc_replyok.txt/usr/local/bin/sendEmail -f $FRUSER -t ${DBAEMAIL} -bcc $BCCUSER -s $SMTP -u "$IP arc_replyok" -o message-file=arc_replyok.txt -xu "$FRUSER" -xp "$USERPWD"fiexit

修改其中的变量即可,<< 修改成半角格式,Wordpress会自动转换半角的<<。
然后再通过crontab定时运行此脚本,实现Email预警。


实际上需要修改的地方有以下标红部分:
#!/bin/bash
#by Dbabc.net 2012/02/02
#User specific environment and startup programs
#


if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi


export DBAEMAIL=dbabc@dbabc.net
export ORACLE_SID=dbabc
export IP='10.8.8.1'
export SMTP='smtp.dbabc.net'
export FRUSER='dba@dbabc.net'
export BCCUSER='dba@dbabc.net'
export USERPWD='pwd'
VALUE=`$ORACLE_HOME/bin/sqlplus -S /nolog <<EOF
set heading off feedback off pagesize 0 verify off echo off numwidth 4
connect / as sysdba
select count(*) from v\\$archived_log where applied='NO';
exit
EOF`
if [ "$VALUE" -gt 0 ]; then


$ORACLE_HOME/bin/sqlplus -S /nolog > arc_not_reply.log <<EOF
set heading off feedback off pagesize 0 verify off echo off
set lines 200
col name format a60
connect / as sysdba
alter session set nls_date_format='YYYY-MM-DDHH24:MI:SS';
select '$IP',name,sequence#,applied,completion_time from v\$archived_log where applied='NO';
exit
EOF


cat arc_not_reply.log|rev|awk {'print $1" "$2" "$3" "$4" "$5'} | rev |awk {'print "insert into ARC_NOT_REPLY_LOG(hostname,name,SEQUENCE,applied,COMPLETION_TIME) values(#"$1"#,#"$2"#,"$3",#"$4"#,#"$5"#);"'} |grep -v '##' | grep -v '#on#' | sed "s/#/'/g" |sed "s/%//g"| sed "s/ip/"${v_hostip}"/g" >ARC_NOT_REPLY_LOG.sql;
#echo "insert into ARC_NOT_REPLY_LOG(hostname,name,SEQUENCE#,applied,COMPLETION_TIME) values ( '${INTV1}', '${INTV2},'${INTV3}', '${INTV4}', '${INTV5}');" >ARC_NOT_REPLY_LOG.sql;


$ORACLE_HOME/bin/sqlplus /nolog <<EOF
connect oram/oram@10.8.8.4:1521/yqpt
@ARC_NOT_REPLY_LOG.sql
commit;
exit;
EOF


/usr/local/bin/sendEmail -f $FRUSER -t ${DBAEMAIL} -bcc $BCCUSER -s $SMTP -u "$IP arclog not reply" -o message-file=arc_not_reply.log -xu "$FRUSER" -xp "$USERPWD"
exit
else
echo `date +'%F %T'`" All the archive log have replyed" >arc_replyok.txt
/usr/local/bin/sendEmail -f $FRUSER -t ${DBAEMAIL} -bcc $BCCUSER -s $SMTP -u "$IP arc_replyok" -o message-file=arc_replyok.txt -xu "$FRUSER" -xp "$USERPWD"
fi
exit


并且,/usr/local/bin/sendEmail是一个命令,希望执行成功需要先安装sendEmail
安装步骤如下:

sendEmail下载地址:Http://caspian.dotconf.net/menu/Software/SendEmail/

# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下载1.56版本

# tar -xzvf sendEmail-v1.56.tar.gz //解压后就可以使用了

# mvsendEmail /usr/local/bin/

以上是“SHELL脚本如何检查Oracle DG备库是否已经应用归档”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: SHELL脚本如何检查Oracle DG备库是否已经应用归档

本文链接: https://lsjlt.com/news/246087.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SHELL脚本如何检查Oracle DG备库是否已经应用归档
    小编给大家分享一下SHELL脚本如何检查Oracle DG备库是否已经应用归档,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!自动检查Oracle DG备库是否已经...
    99+
    2023-06-06
  • dg如何实现删除备库已经应用的归档日志脚本
    这篇文章主要介绍了dg如何实现删除备库已经应用的归档日志脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 #!/bin/bash #b...
    99+
    2024-04-02
  • Oracle如何查看归档是否被备库应用
    这篇文章给大家分享的是有关Oracle如何查看归档是否被备库应用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 首先是查询v$archived_lo...
    99+
    2024-04-02
  • 如何在Python中检查shell索引是否已经同步?
    在使用Elasticsearch等搜索引擎时,我们通常会使用shell索引来进行数据的快速搜索和访问。但是,在进行一些操作之后,我们需要确保索引已经同步,以免出现错误。本文将介绍如何使用Python检查shell索引是否已经同步的方法。 ...
    99+
    2023-10-27
    同步 shell 索引
  • 数据库中如何查看DG是否是实时应用
    这篇文章给大家分享的是有关数据库中如何查看DG是否是实时应用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。做某业务系统的DG时,发现DG抽取时报错,查看DG状态发现每天切换两次只...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作