SQL to find rman backup files required for recovery?
148458Oct 27 2009 — edited Oct 29 2009Hi folks,
I'm looking for a sql statement that I can use to query the database and return a list of the RMAN backup files needed for a successful recovery based on a SCN or a point in time. I want to do it through SQL (not though rman) because I want to script an automated refresh process. My databases are backed up online, so I would need any archive log backups done during the database backup as well. So for example...
I do a database backup
Then do an archive log backup.
Pass a SQL script the lowest and highest scn numbers during the backup.
It returns a list of the rman backup pieces needed to do a successful recovery.
I've got a script, below, which shows the lowest and highest scn during the last full backup (all datafiles which exist have been backed up), if someone understands what I'm looking for and has done something similar, I would really appreciate any insight you may have. What I'd want to get back from the SQL is the names of the rman backup files (handles) which would be needed to get the database recovered to the highest scn during the backup.
SELECT MIN(VBD.CHECKPOINT_CHANGE#), MAX(VBD.CHECKPOINT_CHANGE#)
FROM V$BACKUP_DATAFILE VBD, V$DATAFILE VDF,
(SELECT
CREATION_CHANGE#,
MAX(COMPLETION_TIME) COMPLETION_TIME
FROM V$BACKUP_DATAFILE
WHERE CREATION_CHANGE# IN (
SELECT CREATION_CHANGE# FROM V$DATAFILE)
GROUP BY CREATION_CHANGE#
) QUERY1
WHERE VBD.CREATION_CHANGE# = VDF.CREATION_CHANGE#
AND VBD.CREATION_CHANGE# = QUERY1.CREATION_CHANGE#
AND VBD.COMPLETION_TIME = QUERY1.COMPLETION_TIME;
Thanks very much for your time,
-Adam vonNieda