#! /bin/sh # ################################################################################ # Script um ORACLE RDBMS sauber zu stoppen # # Nur auf dem Root-Server wird das RDBMS und der SQL*NET TCP/IP Server # gestartet. Die Discless-Nodes kontrollieren ob die Datenbanken in # /etc/oratab verfuegbar sind # # Das Script muss als Benutzer "oracle" gestartet werden ! # su oracle -c stop_oracle # # Martin Zahn 6.7.92 # ################################################################################ export ORACLE_HOME ORACLE_SID PATH # Set PATH if not set case $PATH in "") PATH=/bin:/usr/bin:/etc ;; esac # Read Standard ORACLE Konfiguration File ORATAB=/etc/oratab # Is Database installed ? if [ ! -f $ORATAB ] then exit 1 fi # Loop for every entry in ORATAB file and stop that Database cat $ORATAB | while read LINE do case $LINE in \#*) # Comment-Line in ORATAB ;; *) # Setup ORACLE_SID and ORACLE_HOME # if third field in ORATAB 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 ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -` # Put $ORACLE_HOME/bin into PATH and export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/etc # Check if Database is running if test -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.dbf -o \ -f $ORACLE_HOME/dbs/sgadef${ORACLE_SID}.ora then if [ -f $ORACLE_HOME/bin/sqldba ] then CMDSHUT="sqldba command=shutdown immediate" else CMDSHUT="ior c" fi else exit 0 fi # Try to shutdown Database if $CMDSHUT # Try to shutdown Database then echo "Database \"${ORACLE_SID}\" shut down." else echo "Database \"${ORACLE_SID}\" not shut down." fi fi ;; esac # End case $LINE done # End Loop read ORATAB exit 0