PURPOSE
Oracle recommends to configure the system to automatically start Oracle Database when the system starts, and to automatically shut it down when the system shuts down.
Environment:
Operating System: Oracle Linux 7
Oracle Database: Oracle 12.1.0.2
SOLUTION
- Check and configure /etc/oratab appropriately
If you want dbstart to auto-start a single-instance database that uses an ASM server that is auto-started by CRS (this is the default behavior for an ASM cluster), you must change the database’s ORATAB entry to use a third field of “W” and the ASM’s ORATAB entry to use a third field of “N”. - Change directory to /etc/init.d, and create a file “dbora” with below contents. The Oracle doc has got typo for this script part “runuser $HOST -l $ORACLE $0 $1 ORA_DB”, which will cause failure.
$ cat dbora
#! /bin/sh -x
#
# Change the value of ORACLE_HOME to specify the correct Oracle home
# directory for your installation.
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
#
# Change the value of ORACLE to the login name of the
# oracle owner at your site.
#
ORACLE=oracle
PATH=${PATH}:$ORACLE_HOME/bin
HOST=`hostname`
PLATFORM=`uname`
export ORACLE_HOME PATH
#
if [ ! "$2" = "ORA_DB" ] ; then
#runuser $HOST -l $ORACLE $0 $1 ORA_DB
runuser -l $ORACLE $0 $1 ORA_DB
if [ "$PLATFORM" = "Linux" ] ; then
touch /var/lock/subsys/dbora
fi
exit
fi
#
case $1 in
'start')
$ORACLE_HOME/bin/dbstart $ORACLE_HOME &
;;
'stop')
$ORACLE_HOME/bin/dbshut $ORACLE_HOME &
;;
*)
echo "usage: $0 {start|stop}"
exit
;;
esac
#
exit
- Change file “dbaora” with right group name and permission.
# chgrp dba dbora
# chmod 750 dbora
- Create symbolic links to the dbora script in the appropriate run-level script directories:
Platform | Symbolic Links Commands |
---|---|
Oracle Solaris |
# ln -s /etc/init.d/dbora /etc/rc0.d/K01dbora # ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora |
Linux |
# ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora # ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora # ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora |
IBM AIX on POWER Systems (64-Bit) |
# ln -s /etc/dbora /etc/rc.d/rc2.d/S99dbora # ln -s /etc/dbora /etc/rc.d/rc0.d/K01dbora |
Check the logs
- /var/log/messages
- $ORACLE_HOME/listener.log
- $OACLE_HOME/shutdown.log
- $ORACLE_HOME/startup.log