I know is there is a lot of posts about it in the internet, but I’m doing mine about it. The main reason is that the other has lots of steps and outputs and I miss simplicity. Hope you enjoy this one as well.
Sometimes if the standby database fails for any reason – for example when doing NOLOGGING actions in the primary database – then it can be necessary to recover the datafiles from the incremental backup as the archive logs will not contain the right information.
The recovery of the standby is relatively simple.
1. Take a cumulative incremental backup on the primary
Either take a level 1 backup
backup as compressed backupset incremental level 1 cumulative database filesperset 15;
Or get the scn to recover from on the standby using the lower value from following SQLs
select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != 'READ ONLY';
SELECT CURRENT_SCN FROM V$DATABASE;
2. Run the backup using the SCN
backup as compressed backupset incremental from scn &scn;
3. Create a copy of controlfile for Standby
alter database create standby controlfile as '/tmp/newctfl.ctl';
4. Copy incremental backup files and controlfile to standby
5. Restore copied Controlfile
SQL> shutdown abort;
SQL> startup nomount;
RMAN> restore controlfile from '/tmp/newctfl.ctl';
SQL> alter database mount;
6. Catalog the backup files in the standby controlfile
catalog start with '/tmp/rmanbackup/';
7. Recover the database with no redo
recover database noredo;
8. Start the managed recovery
alter database recover managed standby database using current logfile disconnect from session;
This is also an easy alternative to the lot more complex described in MOS Rolling a Standby Forward using an RMAN Incremental Backup To Fix The Nologging Changes (Doc ID 958181.1).
Hope you enjoy!