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 dbshut/dbstart

Re: problems with dbshut/dbstart

From: Frederic DEBRUS <frederic.debrus_at_ces-cdr.be>
Date: 23 Sep 1999 12:21:25 GMT
Message-ID: <01bf05bf$1be443a0$3e35a99e@gal159a>


Hi,

        First to start/stop the listener you have to specify the name of the listener

su - oracle -c "lsnrctl start listener_prod"

        You better write a small schell script to stop the db, because if there is a Oracle process
running the db will not shutdown until this process has ended unless you do a shutdown abort but
in this case you have to start/stop the database again with normal shutdown because taking a backup
after a shutdown abort will give you an unconsistent backup

exemple of shell script

#!/bin/ksh
#
# Author : DEBRUS Frederic
# Version : 2.0
# File : DbStop
# Param : dbname
#

error()
{
  echo `date` " :: $*"
  exit 2
}

usage()
{
  echo "Usage : $0 dbname"
  exit ${1:1}
}

wait_process()
{
  Waited=0
  echo `date` " : Wait $1 process for $2 to complete\c"   while [ $Waited -lt $2 ]
  do
    echo ".\c"
    ps -p "$1" >/dev/null 2>&1 || break     sleep 20
    Waited=`expr $Waited + 20`
  done
  echo "\n"
  if [ $Waited -ge $2 ]
  then

     echo `date` " :: $3 Process failed to complete"
     fail_process=1
  else
     echo `date` " : $3 Process complete"
     fail_process=0

  fi
}

set_database()
{
#
# Change the oratab location to reflect your installation
#

ORATAB=/var/opt/oracle/oratab
DBName="$1"
grep $DBName $ORATAB >/dev/null 2>&1 || error "$DBName is not a valid Database"
ORAENV_ASK=NO
ORACLE_SID=$DBName
export ORAENV_ASK ORACLE_SID
. oraenv
ORAENV_ASK=
}

start_database()
{
su oracle -c "svrmgrl <<EOF
connect internal
startup
exit
EOF"
}

stop_database()
{
su oracle -c "svrmgrl <<EOF
connect internal
shutdown $1
exit
EOF" > /dev/null 2>&1 &
wait_process $! $2 "Shutdown $1"
}

# Main

#
# Test if param is there
#

[ "$#" -lt 1 ] && usage
#
# Set the Oracle Instance to $1
#

set_database $1
#
# Try to shutdown with immediate option
#

echo `date` " : Trying to shutdown immediate" stop_database immediate 600
#
# If shutdown fail
#

if [ "$fail_process" -eq "1" ]
then

  #
  # Try to shutdown with abort option
  #

  echo `date` " :: Shutdown immediate did not work, trying abort now"   stop_database abort 400
  [ "$fail_process" -eq "1" ] && error Failed to shutdown abort
  #
  # Restart database
  #

  echo `date` " : Shutdown abort done, restart now"   start_database
  #
  # Try to shutdown with immediate option
  #

  echo `date` " : Database started, shutdown immediate now"   stop_database immediate 400
  [ "$fail_process" -eq "1" ] && error Failed to shutdown immediate fi
echo `date` " : Shutdown immediate done"

Hope this help
Ciao

Greg Silverman <gms_at_gms.email.umn.edu> wrote in article <6EC14873F507D3119B8C0090273C43490677D5_at_jdasoftware.com>...

> Help,
> We are trying to get a script working to do shutdown/startup for backups
> of an 8i db.
> 
> Have tried something like this for the shutdown (similar for startup):
> 
> su - oracle -c "lsnrctl stop" >> /var/log/oracle
> rm -f /var/lock/subsys/oracle
> su - oracle -c dbshut >> /var/log/oracle
> 
> The listener does stop (start), as seen from /var/log/oracle, but I
> cannot get the
> dbshut (dbstart) to actually stop the database.
> 
> We do have all instances defined in the oratab file, but I assume that
> this file is only looked at if/when the server is rebooted. What is the
> proper syntax to get the instance names in the dbshut (dbstart) command
> line, or is there some other problem?
> 
> Thanks!
> 
> --
> Greg M. Silver <gms_at_tc.umn.edu>
> UofMN Cancer Center Computing
> 
> --
> Greg M. Silver <gms_at_tc.umn.edu>
> UofMN Cancer Center Computing
> 
> 
Received on Thu Sep 23 1999 - 07:21:25 CDT

Original text of this message

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