10g ASM Startup After Reboot

  • From: Andy Rivenes <arivenes@xxxxxxxx>
  • To: "Oracle-L" <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 30 Nov 2004 15:29:22 -0800

I'm using 10g (10.1.0.3) on Linux and ASM and have run into bug 3458327 
which is also explained in Note: 264235.1. The gist of the problem is that 
ASM requires CSS to handle communications, but the way Oracle has setup up 
the startups, CSS is never available soon enough to allow the ASM instance 
to start. I've created a work around and wanted to share it, and see if 
anyone else has come up with a better way to handle the problem.

Oracle suggests modifying the inittab file and then putting a "sleep" in 
dbora in the "hopes" that CSS will have initialized by the time dbora wakes 
up and tries to start the ASM instance. The problem is that I can't get the 
CSS to communicate with ASM unless I leave it where Oracle originally put 
it. Of course dbora then fails to properly start ASM and this must then be 
done manually after the boot. The following is Oracle's suggestion and my 
work around:

Oracle's suggestion:

1 - put the entry in 'inittab' file about the init.cssd script before 
running the runlevel 3

example of inittab:

(...)
s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog
s3:3:wait:/sbin/rc3 >/dev/msglog 2<>/dev/msglog
s5:5:wait:/sbin/rc5 >/dev/msglog 2<>/dev/msglog
(...)
h1:3:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1

you need to change it in this way:

(...)
s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog
h1:3:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1
s3:3:wait:/sbin/rc3 >/dev/msglog 2<>/dev/msglog
s5:5:wait:/sbin/rc5 >/dev/msglog 2<>/dev/msglog
(...)

2 - amend the dbora script file to include a 'sleep 120' giving time to the 
daemon to start before the other instances try and start.

My workaround (that works) is to background a script to start everything 
and allow the rest of the rc scripts to keep running and finish. This will 
then allow the init.cssd script to run as originally intended and the 
backgrounded script will presumably run after that. A more sophisticated 
approach would probably also check to make sure that ocssd.bin (CSS) was 
running before trying to start Oracle:

Leave inittab alone and change dbora:

   'start')
           echo "Starting up ORACLE..."
           #
           echo "sleep 120" > /tmp/dbstart
           echo "/bin/su - $ORA_OWNER  -c \"$ORACLE_HOME/bin/lsnrctl 
start\"" >> /tmp/dbstart
           echo "/bin/su - $ORA_OWNER  -c \"$ORACLE_HOME/bin/dbstart\"" >> 
/tmp/dbstart
           echo "touch /var/lock/subsys/dbora" >> /tmp/dbstart
           chmod 700 /tmp/dbstart
           nohup /tmp/dbstart > /dev/null 2>&1
           #
           echo "dbora is done."
         ;;

Any thoughts?



Andy Rivenes
Email: arivenes@xxxxxxxx

--
//www.freelists.org/webpage/oracle-l

Other related posts: