How to start Oracle database automatically

How to start Oracle database automatically when after SunSolaris is being re-booted?
TIA,
Greg

This works on one of the servers running Oracle - you may have to change it to suit your needs.

#!/bin/sh
ORA_HOME=/u01/app/oracle/product/8.0.5
if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle startup: annot start"
exit
fi
case "$1" in
  'start')
# start Oracle databases
su - oracle -c $ORA_HOME/bin/dbstart
su - oracle -c "$ORA_HOME/bin/lsnrctl start "
;;
'stop')
# stop Oracle databases
su - oracle -c "$ORA_HOME/bin/lsnrctl stop "
su - oracle -c $ORA_HOME/bin/dbshut
;;
esac

And if you want to start and stop the other services such as the SNMP agent, OEM, and the web services:

# Start the Intelligent Agent
if [ -f $ORA_HOME/bin/agentctl ]; then           
    su - $ORA_OWNER -c "$ORA_HOME/bin/agentctl start"
else
    su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl dbsnmp_start"
fi

# Start Management Server
if [ -f $ORA_HOME/bin/oemctl ]; then
    su - $ORA_OWNER -c "$ORA_HOME/bin/oemctl start oms"
fi

# Start HTTP Server
if [ -f $ORA_HOME/Apache/Apache/bin/apachectl ]; then
    su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl start"
fi

# Stop HTTP Server
if [ -f $ORA_HOME/Apache/Apache/bin/apachectl ]; then
    su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl stop"
fi
# Stop Management Server
if [ -f $ORA_HOME/bin/oemctl ]; then
    su - $ORA_OWNER -c "$ORA_HOME/bin/oemctl stop oms sysman/<password>"
fi
# Stop the Intelligent Agent
if [ -f $ORA_HOME/bin/agentctl ]; then
    su - $ORA_OWNER -c "$ORA_HOME/bin/agentctl stop"
else
    su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl dbsnmp_stop"
fi

Tested on Sun Solaris:

#!/bin/sh

  if [ -d /export/home/oracle/OracleStartScripts ] ; then
        :
  else
        mkdir /export/home/oracle/OracleStartScripts
        chown oracle:oinstall /export/home/oracle/OracleStartScripts
  fi

  echo "\
        ORACLE_BASE=/u01/app/oracle
        ORACLE_HOME=\$ORACLE_BASE/product/8.1.7
        ORACLE_SID=test
        ORA_NLS33=\$ORACLE_HOME/ocommon/nls/admin/data
        PATH=.:\$ORACLE_HOME/bin:opt/bin:/bin:/usr/bin:/usr/ccs/bin:/usr/ucb:/etc/usr/sbin

        export ORACLE_BASE
        export ORACLE_HOME
        export ORACLE_SID
        export NLS_LANG
        export ORA_NLS33
        export PATH

        svrmgrl /nolog <<EOF
        connect internal
        startup
        EOF

        echo starting listner...
        lsnrctl start
        " > /export/home/oracle/OracleStartScripts/StartOra.sh

# 
  echo "\
        ORACLE_BASE=/u01/app/oracle
        ORACLE_HOME=\$ORACLE_BASE/product/8.1.7
        ORACLE_SID=test
        ORA_NLS33=\$ORACLE_HOME/ocommon/nls/admin/data
        PATH=.:\$ORACLE_HOME/bin:opt/bin:/bin:/usr/bin:/usr/ccs/bin:/usr/ucb:/etc/usr/sbin

        export ORACLE_BASE
        export ORACLE_HOME
        export ORACLE_SID
        export NLS_LANG
        export ORA_NLS33
        export PATH

        svrmgrl /nolog <<EOF
        connect internal
        shutdown immediate
        EOF

        echo starting listner...
        lsnrctl stop
        " > /export/home/oracle/OracleStartScripts/StopOra.sh
	
	chown oracle:oinstall /export/home/oracle/OracleStartScripts/StopOra.sh
	chown oracle:oinstall /export/home/oracle/OracleStartScripts/StartOra.sh
	
	chmod +x /export/home/oracle/OracleStartScripts/StopOra.sh
	chmod +x /export/home/oracle/OracleStartScripts/StartOra.sh 

 echo "\
   #!/bin/sh
   # start/Stop oracle Database
   
  case \"\$1\" in
   	'start')
   	# start the database
   	if [ -f /export/home/oracle/OracleStartScripts/StartOra.sh ] ; then
   		echo \"Start Oracle database.\"
   		su -l oracle -c /export/home/oracle/OracleStartScripts/StartOra.sh
   	else
   		echo \"Error! Can't find: /export/home/oracle/OracleStartScripts/StartOra.sh\"
   		echo \"          Oracle could not be Started!\"
   	fi
   	;;
   
  	'stop')
          # Stop the database
          if [ -f /export/home/oracle/OracleStartScripts/StopOra.sh ] ; then
                    echo \"stopping oracle Database.\"
                    su -l oracle -c /export/home/oracle/OracleStartScripts/StopOra.sh
           else
                        echo \"Error! Can't find:/export/home/oracle/OracleStartScripts/StopOra.sh\"
                        echo \"          Oracle could not be Stopped!\"
           fi
           ;;
   esac
                " > /etc/init.d/MYoracle

        chmod +x /etc/init.d/MYoracle

        ln -s /etc/init.d/MYoracle /etc/rc3.d/S99oracle
        ln -s /etc/init.d/MYoracle /etc/rc2.d/K99oracle
        ln -s /etc/init.d/MYoracle /etc/rc1.d/K99oracle
        ln -s /etc/init.d/MYoracle /etc/rc0.d/K99oracle
        ln -s /etc/init.d/MYoracle /etc/rcS.d/K99oracle