3.16.2009

How to startup RAC database services automatically

As of Oracle 10gR2 (10.2.0.4 patch set) when RAC database is started with 'srvctl start database -d DBNAME', unfortunately, the associated database services do not startup automatially. Therefore,   services must be started manually after the database startup. It could be painfull in some situations, like, when you have many databases running on RAC with daily or weekly cold backup schedule. When services are not up, clients unable to connect to the respective databsases, in case they use the service name to connect to the database.

A possible workaround is to write  FAN server side callouts. You may download perl scripts, 'Start Services on Instance Up' from http://www.oracle.com/technology/sample_code/products/rac/index.html. Its a smaple perl script which can be used to as a FAN Server Side callout to start services when an instanes up event is received on the node. You need to put the scripts under $CRS_HOME/racg/usrco. The PDF contains the procedure how to deploy the scripts, setting permission and other stuff.

In 11g,  When services are already started on some remote nodes, then the startup of the instance on the local node will autostart the services on it.

References:

ML 416178.1: After Srvctl Start Database, Database Services Will Not Start Up Automatically
http://www.oracle.com/technology/sample_code/products/rac/index.html
http://www.oracle.com/technology/products/database/clustering/pdf/twpracwkldmgmt.pdf
http://download-west.oracle.com/docs/cd/B19306_01/rac.102/b14197/hafeats.htm#sthref374

Happy reading,

Jaffar

4 comments:

Dan Norris said...

Jaffar,

Is it really just a complete coincidence that I posted a blog with almost the same name just 3 days ago? I guess it is possible, but seems unlikely. http://www.dannorris.com/2009/03/12/start-database-services-automatically-after-instance-startup/

You even cite the same sample code for callouts that I wrote about.

Dan

The Human Fly said...

Thats really a coincidence Dan. If I would have seen your post earlier, it could have been a great help for me as we were badly impacted with this behavior. Upon some research, I come across of the scripts which specified in our blogs.
I must accept that your post is far better than mine.

Regards,

Jaffar

Dan Norris said...

I love coincidences, they just don't happen too often. I didn't see the ML notes you mentioned, so looks like we both learned something!

Great minds think alike, I guess.

The Human Fly said...

Guess what Dan, we sometime facing a problem with this auto service startup with the following error:

*** 2009-03-18 00:28:51.687
*** ACTION NAME:() 2009-03-18 00:28:51.686
*** MODULE NAME:(racgimon@hostname (TNS V1-V3)) 2009-03-18 00:28:51.686
*** SERVICE NAME:(SYS$USERS) 2009-03-18 00:28:51.686
*** SESSION ID:(141.3) 2009-03-18 00:28:51.686
psdgbt: bind csid (1) does not match session csid (873)
psdgbt: session charset is AL32UTF8
*** 2009-03-18 00:28:51.687
ksedmp: internal or fatal error
Current SQL statement for this session:
begin dbms_service.start_service(:a1, :a2); end;

and the worst thing is to stop and start the db again.
I am yet to root cause the issue. I will let you know if I come across of a permanent solution.

Regards,