autoswitch Datagurad script

本文介绍了一种通过SSH实现的自动脚本,该脚本能够检测远程主机的状态,并在检测到主数据库不可用时,自动执行Data Guard切换流程。文章详细展示了如何设置SSH密钥信任以简化远程操作,并提供了具体的bash脚本示例。
分享给有需要的人
下面脚本通过网络判断主机是否被关机来执行自动切换

添加root对等信任

mxq1-> mkdir ~/.ssh

mxq1-> chmod 700 ~/.ssh

mxq1-> ssh-keygen -t rsa

mxq1-> ssh-keygen -t dsa

mxq2-> mkdir ~/.ssh

mxq2-> chmod 700 ~/.ssh

mxq2-> ssh-keygen -t rsa

mxq2-> ssh-keygen -t dsa

mxq1-> cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

mxq1-> cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

mxq1-> ssh mxq2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

mxq1-> ssh mxq2 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

mxq1-> scp ~/.ssh/authorized_keys mxq2:~/.ssh/authorized_keys


下面脚本

#!/bin/bash
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
umask 022
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib
ORACLE_BASE=/filedata/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db_1
ORACLE_SID=oracle11
LD_LIBRARY_PATH=$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID
#export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH

#use ssh decide network status
#decide no 0 network at questio
#RETVAL return 0 AUTO SWITCH DATAGURAD
#It didn't gap execute
owner=oracle
ssh mx date >> /home/oracle/oracle.log 2>&1  
RETVAL=$?     
if [ $RETVAL -eq 0 ]
then
echo "remote service active "

else
echo "PRIMARY Host is down, please deal with as soon as possible"|mail -s 'dgexception monitoring' 邮件@qq.com
  echo -n "input:YES /switch NO/Don't switch:"
  read -t 5 verdict
 if [ $verdict = YES ]; then
 echo "AUTO SWITCH DATAGURAD"
su - $owner -c "sqlplus /nolog" << EOF >> /home/oracle/oracle.log
connect / as sysdba
host date
host sleep 1m
host date

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
ALTER DATABASE OPEN;
exit
EOF
 elif [ $verdict = NO ]; then
echo " not switch "

 else
 echo " not switch "

 fi
fi

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29065182/viewspace-1485098/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29065182/viewspace-1485098/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值