How to start Oracle database automatically when after SunSolaris is being re-booted?
TIA,
Greg
This works on one of the servers running Oracle - you may have to change it to suit your needs.
#!/bin/sh
ORA_HOME=/u01/app/oracle/product/8.0.5
if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle startup: annot start"
exit
fi
case "$1" in
'start')
# start Oracle databases
su - oracle -c $ORA_HOME/bin/dbstart
su - oracle -c "$ORA_HOME/bin/lsnrctl start "
;;
'stop')
# stop Oracle databases
su - oracle -c "$ORA_HOME/bin/lsnrctl stop "
su - oracle -c $ORA_HOME/bin/dbshut
;;
esac
And if you want to start and stop the other services such as the SNMP agent, OEM, and the web services:
# Start the Intelligent Agent
if [ -f $ORA_HOME/bin/agentctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/agentctl start"
else
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl dbsnmp_start"
fi
# Start Management Server
if [ -f $ORA_HOME/bin/oemctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/oemctl start oms"
fi
# Start HTTP Server
if [ -f $ORA_HOME/Apache/Apache/bin/apachectl ]; then
su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl start"
fi
# Stop HTTP Server
if [ -f $ORA_HOME/Apache/Apache/bin/apachectl ]; then
su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl stop"
fi
# Stop Management Server
if [ -f $ORA_HOME/bin/oemctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/oemctl stop oms sysman/<password>"
fi
# Stop the Intelligent Agent
if [ -f $ORA_HOME/bin/agentctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/agentctl stop"
else
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl dbsnmp_stop"
fi
Tested on Sun Solaris:
#!/bin/sh
if [ -d /export/home/oracle/OracleStartScripts ] ; then
:
else
mkdir /export/home/oracle/OracleStartScripts
chown oracle:oinstall /export/home/oracle/OracleStartScripts
fi
echo "\
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=\$ORACLE_BASE/product/8.1.7
ORACLE_SID=test
ORA_NLS33=\$ORACLE_HOME/ocommon/nls/admin/data
PATH=.:\$ORACLE_HOME/bin:opt/bin:/bin:/usr/bin:/usr/ccs/bin:/usr/ucb:/etc/usr/sbin
export ORACLE_BASE
export ORACLE_HOME
export ORACLE_SID
export NLS_LANG
export ORA_NLS33
export PATH
svrmgrl /nolog <<EOF
connect internal
startup
EOF
echo starting listner...
lsnrctl start
" > /export/home/oracle/OracleStartScripts/StartOra.sh
#
echo "\
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=\$ORACLE_BASE/product/8.1.7
ORACLE_SID=test
ORA_NLS33=\$ORACLE_HOME/ocommon/nls/admin/data
PATH=.:\$ORACLE_HOME/bin:opt/bin:/bin:/usr/bin:/usr/ccs/bin:/usr/ucb:/etc/usr/sbin
export ORACLE_BASE
export ORACLE_HOME
export ORACLE_SID
export NLS_LANG
export ORA_NLS33
export PATH
svrmgrl /nolog <<EOF
connect internal
shutdown immediate
EOF
echo starting listner...
lsnrctl stop
" > /export/home/oracle/OracleStartScripts/StopOra.sh
chown oracle:oinstall /export/home/oracle/OracleStartScripts/StopOra.sh
chown oracle:oinstall /export/home/oracle/OracleStartScripts/StartOra.sh
chmod +x /export/home/oracle/OracleStartScripts/StopOra.sh
chmod +x /export/home/oracle/OracleStartScripts/StartOra.sh
echo "\
#!/bin/sh
# start/Stop oracle Database
case \"\$1\" in
'start')
# start the database
if [ -f /export/home/oracle/OracleStartScripts/StartOra.sh ] ; then
echo \"Start Oracle database.\"
su -l oracle -c /export/home/oracle/OracleStartScripts/StartOra.sh
else
echo \"Error! Can't find: /export/home/oracle/OracleStartScripts/StartOra.sh\"
echo \" Oracle could not be Started!\"
fi
;;
'stop')
# Stop the database
if [ -f /export/home/oracle/OracleStartScripts/StopOra.sh ] ; then
echo \"stopping oracle Database.\"
su -l oracle -c /export/home/oracle/OracleStartScripts/StopOra.sh
else
echo \"Error! Can't find:/export/home/oracle/OracleStartScripts/StopOra.sh\"
echo \" Oracle could not be Stopped!\"
fi
;;
esac
" > /etc/init.d/MYoracle
chmod +x /etc/init.d/MYoracle
ln -s /etc/init.d/MYoracle /etc/rc3.d/S99oracle
ln -s /etc/init.d/MYoracle /etc/rc2.d/K99oracle
ln -s /etc/init.d/MYoracle /etc/rc1.d/K99oracle
ln -s /etc/init.d/MYoracle /etc/rc0.d/K99oracle
ln -s /etc/init.d/MYoracle /etc/rcS.d/K99oracle