If you have
lost all copies of the current control file, you must restore and mount a
backup control file before performing recovery. Your recovery operation may be
to recover lost data files or it may be to simply recover the control file. If
you are using a recovery catalog, the process is identical to recovery with a
current control file because RMAN can use the recovery catalog to obtain RMAN
metadata.
Restoring
the Control File from Autobackup
If you are
not using a recovery catalog, you should have autobackup of the control file
configured, so that you are able to quickly restore the control file if needed.
The commands used for restoring your control file are the same, whether or not
you are using a Flash Recovery Area. However, if you are using a Flash Recovery
Area, RMAN implicitly cross-checks backups and image copies listed in the
control file, and catalogs any files in the Flash Recovery Area not recorded in
the restored control file, improving the usefulness of the restored control
file in the restoration of the rest of your database.
First,
start up the database, but it cannot be mounted, because there is no control
file. Restore the control file from backup. Now that there is a control file,
you can mount the database. You must now recover the database, because you now
have a backup control file that contains information about an older version of
the database. After recovering the database, you can open it. You must specify
RESETLOGS because the new control file represents a different instantiation of
the database.
Note: Tape backups are not automatically
cross-checked after the restoration of a control file. If you are using tape
backups, then after restoring the control file and mounting the database, you
must cross-check the backups on tape.
To restore
the control file from an autobackup, the database must be in a NOMOUNT state.
You must set the database identifier (DBID) before issuing the RESTORE
CONTROLFILE FROM AUTOBACKUP command as shown in the following example:
RMAN> SHUTDOWN
IMMEDIATE;
RMAN> STARTUP NOMOUNT;
RMAN> SET DBID
1090770270;
RMAN> RESTORE
CONTROLFILE FROM AUTOBACKUP;
RMAN
searches for a control file autobackup. If one is found, RMAN restores the
control file from that backup to all the control file locations listed in the
CONTROL_FILES initialization parameter.
If you have
a recovery catalog, you do not have to set the DBID or use the control file
autobackup to restore the control file. You can use the RESTORE CONTROLFILE
command with no arguments:
RMAN> RESTORE
CONTROLFILE;
The
instance must be in the NOMOUNT state when you perform this operation, and RMAN
must be connected to the recovery catalog. The restored control file is written
to all locations listed in the CONTROL_FILES initialization parameter.
Use the
RESTORE CONTROLFILE... TO <destination> command to restore the control
file to a nondefault location.
If you have
also lost the SPFILE for the database and need to restore it from the
autobackup, the procedure is similar to restoring the control file from
autobackup. You must first set the DBID for your database, and then use the
RESTORE SPFILE FROM AUTOBACKUP command.
After you
have started the instance with the restored server parameter file, RMAN can
restore the control file from the autobackup. After you restore and mount the
control file, you have the backup information necessary to restore and recover
the database.
After
restoring the control files of your database from backup, you must perform
complete media recovery and then open your database with the RESETLOGS option.