dbstart.txt
Delivered as text/plain
[ hide source ] | [ make this the default ]
File Contents
# # $Header: /cvsroot/openacs-4/packages/acs-core-docs/www/files/dbstart.txt,v 1.3.26.1 2019/07/11 06:55:49 gustafn Exp $ dbstart.sh.pp Copyr (c) 1991 Oracle # Modified 6/1/2000: Fixed bug determining version of Oracle by bquinn@arsdigita.com # ################################### # # usage: dbstart # # This script is used to start ORACLE from /etc/rc(.local). # It should ONLY be executed as part of the system boot procedure. # ##################################### ORATAB=/etc/oratab trap 'exit' 1 2 3 case $ORACLE_TRACE in T) set -x ;; esac # Set path if path not set (if called from /etc/rc) case $PATH in "") PATH=/bin:/usr/bin:/etc export PATH ;; esac # # Loop for every entry in oratab file and try to start # that ORACLE # cat $ORATAB | while read LINE do case $LINE in \#*) ;; #comment-line in oratab *) # Proceed only if third field is 'Y'. if [ "`echo $LINE | awk -F: '{print $3}' -`" = "Y" ] ; then ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -` if [ "$ORACLE_SID" = '*' ] ; then ORACLE_SID="" fi # Called programs use same database ID export ORACLE_SID ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` # Called scripts use same home directory export ORACLE_HOME # Put $ORACLE_HOME/bin into PATH and export. PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/etc ; export PATH # add for bug # 652997 LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib ; export LD_LIBRARY_PATH PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora # Figure out if this is a V5, V6, or V7 database. Do we really need V5? if [ -f $ORACLE_HOME/bin/sqldba ] ; then VERSION=`$ORACLE_HOME/bin/sqldba command=exit | awk ' /SQL\*DBA: (Release|Version)/ {split($3, V, ".") ; print V[1]}'` else if test -f $ORACLE_HOME/bin/svrmgrl; then VERSION=`$ORACLE_HOME/bin/svrmgrl command=exit | awk ' /PL\/SQL (Release|Version)/ {substr($3,1,3) ; print substr($3,1,3)}'` else VERSION="8.2" fi fi STATUS=1 # beg mod for linux fix VERSION=8.1 # end mod if [ "$VERSION" = "8.1" ] then pmon=`ps -ef | egrep pmon_$ORACLE_SID | grep -v grep` if [ "$pmon" != "" ]; then STATUS="-1" echo "Database \"${ORACLE_SID}\" already started." fi else if test -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.dbf -o \ -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.ora then STATUS="-1" else STATUS=1 fi fi case $STATUS in 1) if [ -f $PFILE ] ; then case $VERSION in 6) sqldba command=startup ;; 7) sqldba <<EOF connect internal startup EOF ;; 7.3) svrmgrl <<EOF connect internal startup EOF ;; 8.0) svrmgrl <<EOF connect internal startup EOF ;; 8.1) sqlplus /nolog <<EOF connect internal startup EOF ;; esac if test $? -eq 0 ; then echo "" echo "Database \"${ORACLE_SID}\" warm started." else echo "" echo "Database \"${ORACLE_SID}\" NOT started." fi else echo "" echo "Can't find init file for Database \"${ORACLE_SID}\"." echo "Database \"${ORACLE_SID}\" NOT started." fi ;; -1) echo "" echo "Database \"${ORACLE_SID}\" possibly left running when system went down (system crash?)." echo "Notify Database Administrator." case $VERSION in 6) sqldba "command=shutdown abort" ;; 7) sqldba <<EOF connect internal shutdown abort EOF ;; 7.3) svrmgrl <<EOF connect internal shutdown abort EOF ;; 8.0) svrmgrl <<EOF connect internal shutdown abort EOF ;; 8.1) sqlplus /nolog <<EOF connect internal shutdown abort EOF ;; esac if test $? -eq 0 ; then if [ -f $PFILE ] ; then case $VERSION in 6) sqldba command=startup ;; 7) sqldba <<EOF connect internal startup EOF ;; 7.3) svrmgrl <<EOF connect internal startup EOF ;; 8.0) svrmgrl <<EOF connect internal startup EOF ;; 8.1) sqlplus /nolog <<EOF connect internal startup EOF ;; esac if test $? -eq 0 ; then echo "" echo "Database \"${ORACLE_SID}\" warm started." else echo "" echo "Database \"${ORACLE_SID}\" NOT started." fi else echo "" echo "Can't find init file for Database \"${ORACLE_SID}\"." echo "Database \"${ORACLE_SID}\" NOT started." fi else echo "Database \"${ORACLE_SID}\" NOT started." fi ;; esac fi ;; esac done