Oracle 11g DataGuard自动启动服务

WBOY
发布: 2016-06-07 15:55:02
原创
1397 人浏览过

Oracle 11g DataGuard自动启动服务 只为了做的更好Just to do better script name:oracledg #!/bin/bash #chkconfig: 2345 98

Oracle 11g DataGuard自动启动服务

只为了做的更好
Just to do better

 script name:oracledg

 #!/bin/bash
 #chkconfig: 2345 98 01
 #description: Oracle database dataguard server
 #Starts the oracle database dataguard server
 #If more than four archive no application will be under the mout synchronization
 #make SHEEL :MUXINQNG
 case $1 in

 'start')
 if [ ! -f /var/lock/subsys/oracle ]; then
 prog="listener"
 echo -n $"Starting $prog: "
 su - oracle -c "lsnrctl start" >> /var/log/oracle.log
 RETVAL=$?
 [ $RETVAL -eq 0 ] && echo "success" || echo "failed"

 prog="oracle dataguard"
 echo -n $"Starting $prog: "
 su - oracle -c "sqlplus /nolog" > /var/log/oracle.log
 connect / as sysdba
 startup mount
 ! sleep 30
 select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v\$database;
 select thread#,min(sequence#) no_applied_min,max(sequence#) no_applied_max,count(1) no_applied_all from v\$archived_log where applied='NO' and STANDBY_DEST='NO' and deleted'YES' group by thread# order by thread#;
 declare wyyn number;
 begin
  select count(1) into wyyn from v\$archived_log where applied='NO' and standby_dest='NO';
  if wyyn     EXECUTE IMMEDIATE 'alter database open';
 
  EXECUTE IMMEDIATE 'alter database recover managed standby database using current logfile disconnect';
  else

  EXECUTE IMMEDIATE 'alter database recover managed standby database using current logfile disconnect';
 end if;
 end;
 /
 select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v\$database;
 select applied,count(1) from v\$archived_log where applied='NO'  group by applied;
 exit
 EOF

 RETVAL=$?
 [ $RETVAL -eq 0 ] && echo "success" || echo "failed"
 echo
 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/oracle || RETVAL=1
 fi
 ;;
 'stop')
 prog="listener"
 echo -n $"Stopping $prog: "
 su - oracle -c "lsnrctl stop" >> /var/log/oracle.log
 RETVAL=$?
 [ $RETVAL -eq 0 ] && echo "success" || echo "failed"
 echo
 prog="oracle dataguard"
 echo -n $"Stopping $prog: "
 su - oracle -c "sqlplus /nolog" > /var/log/oracle.log
 connect / as sysdba
 alter database recover managed standby database cancel;
 shutdown immediate
 exit
 EOF
 RETVAL=$?
 [ $RETVAL -eq 0 ] && echo "success" || echo "failed"
 echo
 [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/oracle
 ;;
 'restart')

 prog="oracle dataguard"
 echo -n $"Stopping $prog: "
 $0 stop

 prog="oracle dataguard"
 echo -n $"Starting $prog: "
 $0 start
 ;;
 'status')

 su - oracle -c "lsnrctl status"
 su - oracle -c "sqlplus /nolog"  connect / as sysdba
 select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v\$database;
 select process,status from v\$managed_standby;
 exit
 EOF
 ;;
 *)
 echo $"Usage: $0 {start|stop|restart|status}"
 ;;
 esac

本文永久更新链接地址

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板