View Full Version : Running older databases on 11gR2 ASM and Clusterware

Mike Donovan
03-28-2011, 08:29 AM
The presenting issue:
Dbvisit Standby fails (although this would also be expected outside of the Dbvisit Standby context) when trying to create standby controlfiles, using the RMAN "restore" command, as in the following:

RMAN-00571: ================================================== =========
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ================================================== =========
RMAN-03002: failure of restore command at 01/18/2011 17:33:38
ORA-19504: failed to create file "+DATA/oradev/control01.ctl"
ORA-17502: ksfdcre:3 Failed to create file +DATA/oradev/control01.ctl
ORA-15001: diskgroup "DATA" does not exist or is not mounted
ORA-15077: could not locate ASM instance serving a required diskgroup
ORA-29701: unable to connect to Cluster Manager
ORA-19600: input file is control file (/usr/tmp/X.dbvisit.10010921.oradev.standbycontrolfile.ctl)

In this particular case it was possible to access ASM, so it was not clear what the error was indicating. This is was using 11gr2 ASM on the destination server with the primary and standby themselves on 10gR2.

The reason here is that the cluster configuration in 11gR2 is dynamic. This dynamic configuration is incompatible with older database releases, which require a fixed configuration.

To run older databases on 11gR2 ASM and Clusterware you need to create a persistent configuration for the nodes on which these databases are meant to run. This is called pinning a node.

To pin a node in preparation for installing an older Oracle Database version, use /bin/crsctl with the following command syntax, where nodes is a space-delimited list of one or more nodes in the cluster whose configuration you want to pin:
$ crsctl pin css -n nodes

For example, to pin nodes node3 and node4, log in as root and enter the following command:
$ crsctl pin css -n node3 node4