Enabling multiple simultaneous failover

The number of recoverable failed instances is the cluster redundancy level (CRL), which is also the name of the configuration parameter that determines this value: cluster redundancy level. The CRL is the maximum number of instances that can fail simultaneously while allowing recovery to proceed concurrently with other activity. If the number of failed instances exceeds the maximum number specified by the configuration parameter, the cluster shuts down.

When the CRL is configured to a number greater than 1, the lock replication in the cluster is also increased. The CRL is at the physical cluster level, and always takes precedence over a failover logical cluster configuration; in other words, your CRL cannot exceed the number of physical instances in your cluster.

cluster redundancy level is a static, cluster parameter with a default value of 1. Its minimum allowed value is 1, and its maximum allowed value is one less than the 'maximum number of instances' specified in the cluster.cfg or quorum file. If one or more instances leave the cluster, the value of cluster redundancy level remains the same.

cluster redundancy level is an sp_configure parameter:

sp_configure 'cluster redundancy level', config_value

Failover recovery recovers data modified by a failed instance while other instances are using the same database. With a CRL of 1 (the default), Adaptive Server maintains at least two copies of each lock in the cluster. Thus, if one instance fails, one copy of the lock remains, so that Adaptive Server can mark the data modified by the failed instance. Similarly, with a CRL of “n,” Adaptive Server has at least “n+1” copies of each lock in the cluster, and can perform failover recovery for “n” simultaneous failovers.

For the cluster to start, the value of cluster redundancy level must be at least one less than the value of maximum number of instances as specified in cluster.cfg or the quorum file. Thus, the cluster cannot start if you set either of these:

Set cluster redundancy level before starting the cluster. If you change its value during runtime, you must restart the cluster.