Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Problems with dbstart

Re: Problems with dbstart

From: Mel <mad_dwarf_at_my-deja.com>
Date: Wed, 05 Jan 2000 14:31:43 GMT
Message-ID: <84vkkf$tj0$1@nnrp1.deja.com>


In article <3871C338.927B839E_at_gmx.de>,
  Stefan Behrens <s.be_at_gmx.de> wrote:
> Hi,
>
> I want to use the dbstart to start up my databases, but the start
fails:
>
> /opt/oracle/7.3.4/bin/dbstart[73]: ior: not found
>
> Database "TTEC" NOT started.
>
> The line(s) in the startup-script:
>
> case $STATUS in
> 1) if [ -f $PFILE ] ; then
> case $VERSION in
> 5) ior w pfile=$PFILE
> ;;
>
> 6) sqldba command=startup
> ;;
>
> 7) sqldba <<EOF
> connect internal
>
> What is ior ?
> I can't find that command on my oracle server !?
>
> The /var/opt/oracle/oratab file looks like this (only the relevant
> line):
>
> TTEC:/opt/oracle/7.3.4:Y
>
> The machine is a SunOS 5.6, the Oracle Version is a 7.3.4.

Stefan,

This is an old problem that has been lurking around since Oracle 7.3 first came out on Solaris. They didn't update the dbstart script to take into account them getting rid of sqldba, and bringing in svrmgrl.

Here's the working one from my site - standard use at your own risk disclaimers apply..

--
#
# $Header: dbstart.sh.pp 1.1 95/02/22 14:37:29 rdhoopar Osd<unix> $ dbstart.sh.p
p Copyr (c) 1991 Oracle
#

###################################
#
# 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=/var/opt/oracle/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

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

            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

            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="7.3"

                else
                        VERSION="5"
                fi

                        VERSION="5"
                fi
            fi

            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
            case $STATUS in
                1)  if [ -f $PFILE ] ; then
                        case $VERSION in
                            5)  ior w pfile=$PFILE
                                ;;

                            6)  sqldba command=startup
                                ;;

                            7)  sqldba <<EOF
connect internal
startup

connect internal
startup
EOF

                                ;;

                           7.3) svrmgrl <<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 ""
                        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
                        5)  ior c
                            ;;

                        6)  sqldba "command=shutdown abort"
                            ;;

                        7)  sqldba <<EOF
connect internal
shutdown abort
EOF
                            ;;

EOF
                            ;;

                      7.3)  svrmgrl <<EOF
connect internal
shutdown abort
EOF
                            ;;
                    esac

                    if test $? -eq 0 ; then
                        if [ -f $PFILE ] ; then
                            case $VERSION in
                                5)  ior w pfile=$PFILE
                                    ;;

                                6)  sqldba command=startup
                                    ;;

                                7)  sqldba <<EOF
connect internal
startup
EOF startup
EOF
                                    ;;
                              7.3)  svrmgrl <<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_S
ID}\"."
                            echo "Database \"${ORACLE_SID}\" NOT
started."
                        fi
                    else

                        fi
                    else
                        echo "Database \"${ORACLE_SID}\" NOT started."
                    fi
                    ;;
            esac
        fi
        ;;

    esac
done

--

I've lived my life in the valleys
I've lived my life on the hills
I've lived my life on alchohol
I've lived my life on pills


Sent via Deja.com http://www.deja.com/
Before you buy. Received on Wed Jan 05 2000 - 08:31:43 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US