Question about resource's start dependency in Clusterware

  • From: Jure Bratina <jure.bratina@xxxxxxxxx>
  • To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 29 Jan 2014 15:45:45 +0100

Hi,

I have Oracle Clusterware version 11.2.0.4.0 and have a question about hard
start dependencies. Suppose resource A has a hard start dependency on
resource B:
START_DEPENDENCIES=hard(B)

My question is: if we try to start resource A, and resource B is not
running, will the resource B be automatically started and after that
resource A will start? I think that is how it should work and a simple test
shows that it indeed works that way. The reasons I'm asking this questions
are two:

1) The documentation at
http://docs.oracle.com/cd/E11882_01/rac.112/e16794/crschp.htm#CWADD91290states
about the hard dependency:
"Define a hard start dependency for a resource if another resource must be
running before the dependent resource can start. For example, if resource A
has a hard start dependency on resource B, then resource B must be running
before resource A can start."

Nowhere is stated that upon starting resource A, resource B will be
automatically started first if not already running (and the "must be
running" also seems to suggest that the hard dependency is only a check if
the referenced resource is already running and not that if it's not, it
will be implicitly started). On the other hand, for the weak dependency
that's explicitly stated: "If resource A has a weak start dependency on
resource B, then an attempt to start resource A attempts to start resource
B, if resource B is not running."

2) I asked a similar question on dependencies in the MOS Community forum
(in the section: "Database - RAC/Scalability", question title: "Question
about the pullup dependency") and got that response: "The test you have
done is what is happening but its not what is defined in the docs. we have
filled a bug BUG 17877379 : HARD DEPENDENCY NOT WORKING AS EXPECTED , which
is currently with our development." Unfortunately the bug 17877379 is not
public.

I'm very grateful to the person that answered my question on the MOS forum,
but that answer made me a little bit confused. If such a fundamental
functionality of Clusterware as a resource's hard start dependency doesn't
work correctly, I guess it's very unlikely it wouldn't be spotted until
11.2.0.4 (unless of course the bug was introduced in that version).
Furthermore, many blogs and books about RAC explain that hard start
dependencies do start the referenced resource, e.g. Martin Bach & Steve
Shaw's  "Pro Oracle Database 11g RAC on Linux" has this example:

[oracle@london1 ~]$ crsctl status resource ora.prod.db -p
NAME=ora.prod.db
TYPE=ora.database.type
ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r--
[...]
SPFILE=+DATA/prod/spfileprod.ora
START_DEPENDENCIES=hard(ora.DATA.dg) [...] pullup(ora.DATA.dg)
STOP_DEPENDENCIES=hard(intermediate:ora.asm,shutdown:ora.DATA.dg)

"You can see that a start dependency has been created for the disk group
DATA, which will also be started if needed as part of the database start."

Thank you in advance for any answers

Regards
Jure Bratina

Other related posts: