ORACLE 11G Datagurad自動啟動服務
只為了做的更好
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" << EOF >> /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 < 5 then
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" << EOF >> /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" << EOF
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
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" << EOF >> /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 < 5 then
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" << EOF >> /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" << EOF
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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-1710646/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle TNSListener服務啟動後自動停止問題Oracle
- oracle10g_自動啟動服務指令碼Oracle指令碼
- centos 自動啟動指令碼和自啟動服務CentOS指令碼
- oracle手動啟動服務Oracle
- 【MySql】開機自動啟動mysql服務MySql
- Ubuntu Server 24.04 自啟動服務UbuntuServer
- Oracle之 服務啟動&停止指令碼與開機自啟動(單例項)Oracle指令碼單例
- oracle 11g之instance自動啟動設定Oracle
- ORACLE 11G 自動維護任務Oracle
- windows下啟動服務時不啟動oracle例項WindowsOracle
- 3.1.3 關於資料庫服務自動啟動資料庫
- win10開啟自動更新服務設定方法 window10如何開啟自動更新服務Win10
- Oracle監聽服務無法啟動Oracle
- UNIX自動啟動oracleOracle
- Drive.ai計劃啟動自動駕駛網約車服務AI自動駕駛
- ORACLE 11G 自動收集Oracle
- oracle for linux 自動啟動OracleLinux
- 自動啟動ORACLE Script ServiceOracle
- linux oracle 自動啟動LinuxOracle
- gitblit 服務啟動不了Git
- Oracle RAC自啟動Oracle
- 【Oracle】RAC 11.2.0.4.0 OHASD服務無法啟動Oracle
- CentOS 7 - 配置服務實現開機自啟動CentOS
- Linux Redis 服務設定開機自啟動LinuxRedis
- 在Linux中,如何管理服務的自啟動?Linux
- Linux MySQL 服務設定開機自啟動LinuxMySql
- oracle 隨系統開啟,自動啟動Oracle
- 11g 啟用或關閉自動統計任務
- windows開機自動啟動oracleWindowsOracle
- oracle instance and listener自動啟動Oracle
- 讓oracle自動啟動方法!(轉)Oracle
- Ubuntu 伺服器採用Systemed管理Tomcat服務自動啟動Ubuntu伺服器Tomcat
- Linux使用Ambari啟動服務啟動失敗Linux
- 如何檢測Windows服務停止後自動啟動?自動執行.bat批處理檔案?WindowsBAT
- Window中Oracle服務啟動時並不啟動例項的兩種方法Oracle
- linux 下啟動服務Linux
- 服務啟動一個程式
- 怎麼啟動postgresql服務SQL