The exclusion
start dependency contains a clause that defines the exclusive relationship between resources while starting. Resources that have the exclusion
start dependency cannot run on the same node. For example, if resource A has an exclusion
start dependency on resource B, then the CRSD policy provides the following options when resource B is already running on the server where resource A needs to start:
Deny the start of resource A if resource B is already running.
Start resource A by preempting resource B. There are two variations to the preempt operation:
Resource B is stopped and, if possible, restarted on another node. Resource A is subsequently started.
Resource A is started first. Subsequently, resource B is stopped and, if possible, restarted on another node.
You can configure the exclusion
start dependency with the following modifiers:
START_DEPENDENCIES=exclusion([[preempt_pre: | preempt_post:]]
target_resource_name
| type:
target_resource_type
]*)
All modifiers specified are per resource or resource type. Oracle Clusterware permits only one exclusion
dependency per resource dependency tree. Without any preempt
modifier, CRSD will only attempt to start the resource if all of its target resources are offline.
preempt_pre
: If you choose this preempt modifier, then CRSD stops the specified target resource or resources defined by a specific resource type before starting the source resource. If restarting the stopped resources is possible, then CRSD can do this concurrently while starting the preempting resource.
preempt_post
: If you choose this preempt modifier, then, after starting the source resource, CRSD stops and relocates, if possible, the specified target resource or resources defined by a specific resource type.
If CRSD cannot stop the target resources successfully, or cannot start the source resource, then the entire operation fails. Oracle Clusterware then attempts to return the affected resources to their original state, if possible.