[oracle@aixdb01]/home/oracle> sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Fri Sep 4 13:18:29 2015
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
SQL> select status from v$instance;
STATUS
------------
STARTED
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 8551575552 bytes
Fixed Size                  2236744 bytes
Variable Size            4429188792 bytes
Database Buffers         4093640704 bytes
Redo Buffers               26509312 bytes
 
# cat /etc/rc.d/init.d/oracledb
#!/bin/ksh
# Start and Stop oracle and the listener
USER=oracle
PATH1=${PATH}
SQLDBA="sqlplus /nolog"
ORATAB=/etc/oratab
ulimit -c unlimited
ulimit -d unlimited
ulimit -s unlimited
if [ ! -f $ORATAB ]
then
  echo "ERROR file $ORATAB doesn't exists"
  exit 1
fi
StartService()
{
echo "Starting Oracle databases"
su $USER -c "$SQLDBA $args <<EOF
connect / as sysdba
startup
quit
EOF"
if [ $(ps -ef | grep "$ORACLE_HOME/bin/tnslsnr |  grep -v grep > /dev/null;echo $?) -ne 0 ]
then
  echo "Starting Oracle LISTENER"
  su - $USER -c "$ORACLE_HOME/bin/lsnrctl start"
fi
}
StopService()
{
if [ $(ps -ef | grep "$ORACLE_HOME/bin/tnslsnr |  grep -v grep > /dev/null;echo $?) -eq 0 ]
then
  echo "Stopping Oracle LISTENER"
  su - $USER -c "$ORACLE_HOME/bin/lsnrctl stop"
fi
echo "Stopping Oracle databases"
su $USER -c "$SQLDBA $args <<EOF
connect / as sysdba
shutdown immediate
quit
EOF"
}
 
cat "$1" in
start )    for line in $(cat /etc/oratab | grep -v '^#' | sed '/^$/d')
           do
             ORACLE_SID=$(echo $line | cut -d':' -f1)
             ORACLE_HOME=$(echo $line | cut -d':' -f2)
             echo "************************************"
             echo "* Starting Database : $ORACLE_SID *"
             echo "************************************"
             PATH=${PATH1}:$ORACLE_HOME/bin
             export ORACLE_SID ORACLE_HOME PATH
             pmon=$(ps -ef | grep -w "ora_pmon_$ORACLE_SID" | grep -v grep)
             if [ "$pmon" != "" ]
             then
               echo "Warning: the database $ORACLE_SID is still started"
             else
               StartService
             fi
           done
           ;;
stop )     for line in $(cat /etc/oratab | grep -v '^#' | sed '/^$/d')
           do
             ORACLE_SID=$(echo $line | cut -d':' -f1)
             ORACLE_HOME=$(echo $line | cut -d':' -f2)
             echo "************************************"
             echo "* Stopping Database : $ORACLE_SID *"
             echo "************************************"
             PATH=${PATH1}:$ORACLE_HOME/bin
             export ORACLE_SID ORACLE_HOME PATH
             pmon=$(ps -ef | grep -w "ora_pmon_$ORACLE_SID" | grep -v grep)
             if [ "$pmon" != "" ]
             then
               StopService
             else
               echo "Warning: the database $ORACLE_SID is still stopped"
             fi
           done
           ;;          
status )   for line in $(cat /etc/oratab | grep -v '^#' | sed '/^$/d')
           do
             ORACLE_SID=$(echo $line | cut -d':' -f1)
             ORACLE_HOME=$(echo $line | cut -d':' -f2)
             PATH=${PATH1}:$ORACLE_HOME/bin
             export ORACLE_SID ORACLE_HOME PATH
             pmon=$(ps -ef | grep -w "ora_pmon_$ORACLE_SID" | grep -v grep)
             if [ "$pmon" != "" ]
             then
               echo "DB $ORACLE_SID is started OK"
             else
               echo "DB $ORACLE_SID is stopped"
             fi
             if [ $(ps -ef | grep "$ORACLE_HOME/bin/tnslsnr |  grep -v grep > /dev/null;echo $?) -eq 0 ]
             then
               echo "Listener is started OK"
             else
               echo "no Listener for this DB
             fi
           done
           ;;
* )        echo "Usage: $0 (start | stop | status)"
           exit 1
esac