Académique Documents
Professionnel Documents
Culture Documents
In this post, I would like to throw light upon using RMAN as an alternate method that
could be employed to extract controlfiles from RMAN backupsets. This method uses
the RMAN command "restore controlfile from
'<FULL_PATH_TO_CONTROLFILE_BACKUP>'".
The RMAN method can be used in 3 scenarios. So, make sure that at least any one
of the backups is indeed available. Else, you are DOOMED!
I. the controlfile autobackup is turned on in RMAN. In this case the file format would
be "c<DBID>-<DATE>-<COUNT>".
It is turned on using the command:
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/opt/apps/vision/backup/
%F';
II. the controlfile snapshot backup is configured in RMAN.
It is turned on using the command:
configure snapshot controlfile name to '<FULL_PATH_TO_SNAP_CTRL_FILE>';
III. the controlfile is included in the RMAN backupset i.e., using the clause "include
current controlfile" in the backup database command.
$ rman target /
$ rman target /
RMAN>
Scenario III - Restoring controlfile using RMAN and backupsets (provided backup is
taken using the "include current controlfile" clause).
Note: The RMAN backup log would record the backup piece name which includes the
controlfile. If you are not sure which backup pice contains the controlfile, then try this on all the
backup pieces till the controlfile is restored.
$ rman target /
RMAN>
Posted by Praveen at 12:16:00 PM No comments: Links to this post
How indeed? I scratched my head and shone a torch upon the dark recesses of my
memory to come up with an answer. The light (of the torch) did indeed reveal
something - that is that a note existed in Metalink which list the method that could
be used to delve into a RMAN backup set to extract the controlfile, the datafiles and
also the archivelogs and Voil, I hit the nail right on the head.
I did some more digging and found a bunch of "Notes" in Metalink that pointed me
to the eventual answer to the above question. The Notes that I am referring to are
listed below. A summary of the procedure to be followed in such scenarios is also
provided. All the notes mentioned use the package dbms_backup_restore.
Scenario:
A successful production backup (RMAN) is available (cold or hot - if hot, then the
archivelogs are also available) while the production and the RMAN catalog
databases are irrevertably lost.
Assumptions:
2. The RMAN backup is a "good" backup and is restore and recovery ready.
3. The list of datafiles (file name + full file path) and their datafile numbers is
available (this can be obtained from the RMAN backup log file).
2. Restore the latest controlfile, ideally from the same backupset as the last
incremental to be restored (Note 388052.1 : restore controlfile using PLSQL).
3. Make further copies if necessary as per the target database init.ora (pfile).
NOTE: (RMAN may be able to be used to restore / recover the database at this point
if the controlfile restored knows about the backup required to be restored and
recovered).
5. Restore the datafiles from the level 0 backupset (Note 388053.1 : restore
datafiles using PLSQL).
6. Restore (apply) the datafiles from the incremental backupsets (Note 388054.1 :
restore incremental backups using PLSQL).
7. Restore the archivelogs from the archivelog backupset (Note 388055.1 : restore
archivelogs using PLSQL).
8. Using traditional recovery techniques, recover the database using SQLPLUS. (until
cancel using backup controlfile).
10. Rebuild the recovery catalog & re-register the target database.
11. Make backups of the target database and recovery catalog database.
References:
1. 60545.1 - How to Extract Controlfiles, Datafiles, and Archived Logs from RMAN
Backupsets
2. 388052.1 - How to Extract the Control file from an RMAN backupset using PL/SQL