Restore multiplexing of the controlfile
Scenarios:
- restore of the multiplexing of the controlfile after a failure
- additional controlfile multiplexing
Configuration:
- Two diskgroups (1) +DBNAME_DATADG1 for db files and redo logs (Oacle-managed files) (2) +DBNAME_RECODG1 for the flash recovery area
- The controlfile is mirrored/multiplexed in two copies one per diskgroup
- The role of the two copies is not symmetrical: the first one is the primary copy, a loss of of the primary copy will quickly cause a crash of the (cluster) DB
- The loss of a non-primary copy of the controlfile will not crash the DB immediately, but will require (cluster) downtime to fix it
How to restore a failed copy of the controlfile:
- stop all instances
-
create pfile='/tmp/pfileDB' from spfile
(use this to find the name of the failed controlfile copy)
- start one instance in nomount
- with rman (Example):
set DBID=....
restore controlfile to '+DBNAME_RECODG1/DBANME/controlfile/current.258.614023949'
from '+DBNAME_DATADG1/DBNAME/controlfile/current.256.612033453';
If you have to add a copy of the controlfile:
- typical scenario, after a controlfile copy failure the DB was reopened with only 1 copy, a maintenance is scheduled to restore full redundancy
- same as above but (Example:)
-
restore controlfile to '+DBNAME_DATADG1' from '+DBNAME_RECODG1/DBANME/controlfile/current.258.614023949'
- use ASMCMD to find the name of the controlfile copy generated above and edit the spfile accordingly