maniu@securebrain.com:~/script# vi dbstart




###################################
#
# 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.
#
#####################################

ORACLE_SID=MY_SID
export ORACLE_SID
ORATAB=/etc/oratab$ORACLE_SID

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
# Save LD_LIBRARY_PATH
SAVE_LLP=$LD_LIBRARY_PATH

#
# Loop for every entry in oratab file and 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=${SAVE_LLP}:${ORACLE_HOME}/lib ; export
LD_LIBRARY_PATH
            PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora

#        Figure out version of database.
            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]}'`
                SQLDBA=sqldba
            else
                if [ -f $ORACLE_HOME/bin/svrmgrl ] ; then
                    SQLDBA=svrmgrl
                else
                    SQLDBA="sqlplus /nolog"
                fi
            fi

            STATUS=1
            if [ -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.dbf ] ; then
                STATUS="-1"
            fi
            if [ -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.ora ] ; then
                STATUS="-1"
            fi
            pmon=`ps -ef | egrep pmon_$ORACLE_SID  | grep -v grep`
            if [ "$pmon" != "" ];
            then
                STATUS="-1"
                echo "Database \"${ORACLE_SID}\" already started."
            fi

            if test $STATUS -eq -1 ; then
                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" ;;
                    *)  $SQLDBA $args <<EOF
connect internal
shutdown abort
EOF
                        ;;
                esac
                if test $? -eq 0 ; then
                    STATUS=1
                else
                    echo "Database \"${ORACLE_SID}\" NOT started."
                fi
            fi

            if test $STATUS -eq 1 ; then
                if [ -f $PFILE ] ; then
                    case $VERSION in
                        6)  sqldba command=startup ;;
                        *)  $SQLDBA >>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
            fi
        fi
        ;;
    esac
done
/oracle/product/x.y.z/bin/lsnrctl start $ORACLE_SID





:q!