This shows how to roll forward a 11gR2 physical standby that's in RAC configuration setup earlier.
In this case archive log files were deleted on primary and there's no other way to bring the standby up to date with the primary.
Current dataguard configuration is
DGMGRL> show configuration Configuration - rac11g2_dgb Protection Mode: MaxPerformance Databases: rac11g2 - Primary database rac11g2s - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS1. Identify the archive gap
SQL> select * from v$archive_gap; THREAD# LOW_SEQUENCE# HIGH_SEQUENCE# ---------- ------------- -------------- 2 901 9012. Stop all but one standby RAC instances
srvctl stop instance -d rac11g2s -i rac11g2s23. Stop log apply on the standby
DGMGRL> edit database rac11g2s set state='APPLY-OFF'; Succeeded.4. Find the current SCN on the standby
SQL> SELECT CURRENT_SCN FROM V$DATABASE; CURRENT_SCN ----------- 457164085. Using the SCN identified in the above step create an incrimental backup in the primary database
RMAN> BACKUP INCREMENTAL FROM SCN 45716408 DATABASE FORMAT '/home/oracle/forstandby%U' tag 'forstandby'; Starting backup at 20-OCT-11 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=46 instance=rac11g21 device type=DISK backup will be obsolete on date 27-OCT-11 archived logs will not be kept or backed up channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=+DATA/rac11g2/datafile/sysaux.257.740770047 input datafile file number=00001 name=+DATA/rac11g2/datafile/system.256.740770045 input datafile file number=00006 name=+DATA/rac11g2/datafile/undotbs3.276.745423577 input datafile file number=00005 name=+DATA/rac11g2/datafile/undotbs2.264.740770355 input datafile file number=00003 name=+DATA/rac11g2/datafile/abc.280.755611691 input datafile file number=00004 name=+DATA/rac11g2/datafile/users.259.740770049 channel ORA_DISK_1: starting piece 1 at 20-OCT-11 channel ORA_DISK_1: finished piece 1 at 20-OCT-11 piece handle=/home/oracle/forstandby2fmpj6s7_1_1 tag=FORSTANDBY comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35 using channel ORA_DISK_1 backup will be obsolete on date 27-OCT-11 archived logs will not be kept or backed up channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set channel ORA_DISK_1: starting piece 1 at 20-OCT-11 channel ORA_DISK_1: finished piece 1 at 20-OCT-11 piece handle=/home/oracle/forstandby2gmpj6tb_1_1 tag=FORSTANDBY comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 20-OCT-116. Copy the created backup files to standby using scp, ftp or any other file transfer utility.
7. Catalog backup files on standby
RMAN> catalog start with '/home/oracle/forstand'; using target database control file instead of recovery catalog searching for all files that match the pattern /home/oracle/forstand List of Files Unknown to the Database ===================================== File Name: /home/oracle/forstandby2fmpj6s7_1_1 File Name: /home/oracle/forstandby2gmpj6tb_1_1 Do you really want to catalog the above files (enter YES or NO)? yes cataloging files... cataloging done List of Cataloged Files ======================= File Name: /home/oracle/forstandby2fmpj6s7_1_1 File Name: /home/oracle/forstandby2gmpj6tb_1_18. Data guard concept and administration guide states "Connect to the standby database as the RMAN target and execute the REPORT SCHEMA statement to ensure that the standby database site is automatically registered and that the files names at the standby site are displayed". Doesn't say registered in what, but safe to assume talking about the recovery catalog. In this case recovery catalog is not used but run the command and make a note of the values as these will be used later on.
RMAN> report schema; RMAN-06139: WARNING: control file is not current for REPORT SCHEMA Report of database schema for database with db_unique_name RAC11G2S List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 720 SYSTEM *** +DATA/rac11g2s/datafile/system.258.754586581 2 1290 SYSAUX *** +DATA/rac11g2s/datafile/sysaux.259.754586467 3 10 ABC *** +DATA/rac11g2s/datafile/abc.287.755615113 4 5 USERS *** +DATA/rac11g2s/datafile/users.276.754586727 5 150 UNDOTBS2 *** +DATA/rac11g2s/datafile/undotbs2.261.754586713 6 600 UNDOTBS3 *** +DATA/rac11g2s/datafile/undotbs3.262.754586657 List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 20 TEMP 32767 +DATA/rac11g2s/tempfile/temp.288.7556152519. Restore the standby controlfile using the backup file (shown in bold on the backup output earlier) and mount the database
RMAN> restore standby controlfile from '/home/oracle/forstandby2gmpj6tb_1_1'; Starting restore at 20-OCT-11 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=17 instance=rac11g2s1 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:05 output file name=+DATA/rac11g2s/controlfile/current.257.754586439 output file name=+FLASH/rac11g2s/controlfile/current.482.754586439 Finished restore at 20-OCT-11 RMAN> alter database mount; database mounted released channel: ORA_DISK_110. Run a report schema again and see that datafile names reported are the ones of the primary databae
RMAN> report schema; RMAN-06139: WARNING: control file is not current for REPORT SCHEMA Report of database schema for database with db_unique_name RAC11G2S List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 0 SYSTEM *** +DATA/rac11g2s/datafile/system.256.740770045 2 0 SYSAUX *** +DATA/rac11g2s/datafile/sysaux.257.740770047 3 0 ABC *** +DATA/rac11g2s/datafile/abc.280.755611691 4 0 USERS *** +DATA/rac11g2s/datafile/users.259.740770049 5 0 UNDOTBS2 *** +DATA/rac11g2s/datafile/undotbs2.264.740770355 6 0 UNDOTBS3 *** +DATA/rac11g2s/datafile/undotbs3.276.745423577 List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 20 TEMP 32767 +DATA/rac11g2s/tempfile/temp.263.74077017711. Catalog the datafiles to the original standby datafile names
RMAN> catalog start with '+DATA/rac11g2s/datafile'; searching for all files that match the pattern +DATA/rac11g2s/datafile List of Files Unknown to the Database ===================================== File Name: +data/RAC11G2S/DATAFILE/SYSAUX.259.754586467 File Name: +data/RAC11G2S/DATAFILE/SYSTEM.258.754586581 File Name: +data/RAC11G2S/DATAFILE/UNDOTBS3.262.754586657 File Name: +data/RAC11G2S/DATAFILE/UNDOTBS2.261.754586713 File Name: +data/RAC11G2S/DATAFILE/USERS.276.754586727 File Name: +data/RAC11G2S/DATAFILE/ABC.287.755615113 Do you really want to catalog the above files (enter YES or NO)? yes cataloging files... cataloging done List of Cataloged Files ======================= File Name: +data/RAC11G2S/DATAFILE/SYSAUX.259.754586467 File Name: +data/RAC11G2S/DATAFILE/SYSTEM.258.754586581 File Name: +data/RAC11G2S/DATAFILE/UNDOTBS3.262.754586657 File Name: +data/RAC11G2S/DATAFILE/UNDOTBS2.261.754586713 File Name: +data/RAC11G2S/DATAFILE/USERS.276.754586727 File Name: +data/RAC11G2S/DATAFILE/ABC.287.75561511312. Run switch database to copy to update the control file with the changes
RMAN> switch database to copy; datafile 1 switched to datafile copy "+DATA/rac11g2s/datafile/system.258.754586581" datafile 2 switched to datafile copy "+DATA/rac11g2s/datafile/sysaux.259.754586467" datafile 3 switched to datafile copy "+DATA/rac11g2s/datafile/abc.287.755615113" datafile 4 switched to datafile copy "+DATA/rac11g2s/datafile/users.276.754586727" datafile 5 switched to datafile copy "+DATA/rac11g2s/datafile/undotbs2.261.754586713" datafile 6 switched to datafile copy "+DATA/rac11g2s/datafile/undotbs3.262.754586657"13. Recover the database with no redo
RMAN> recover database noredo; Starting recover at 20-OCT-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting incremental datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set destination for restore of datafile 00001: +DATA/rac11g2s/datafile/system.258.754586581 destination for restore of datafile 00002: +DATA/rac11g2s/datafile/sysaux.259.754586467 destination for restore of datafile 00003: +DATA/rac11g2s/datafile/abc.287.755615113 destination for restore of datafile 00004: +DATA/rac11g2s/datafile/users.276.754586727 destination for restore of datafile 00005: +DATA/rac11g2s/datafile/undotbs2.261.754586713 destination for restore of datafile 00006: +DATA/rac11g2s/datafile/undotbs3.262.754586657 channel ORA_DISK_1: reading from backup piece /home/oracle/forstandby2fmpj6s7_1_1 channel ORA_DISK_1: piece handle=/home/oracle/forstandby2fmpj6s7_1_1 tag=FORSTANDBY channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:07 Finished recover at 20-OCT-1114. At this stage should have cleared the log files as in step 10 herebut still without clearing the old logs when log apply is enabled new log files will be created automatically. Old log files will remain in the ASM taking up space and could be manually removed using asmcmd rm.
15. Enable log apply on the standby and verify log files are getting applied
DGMGRL> edit database rac11g2s set state='APPLY-ON'; THREAD# SEQUENCE# APPLIED ---------- ---------- --------- 2 907 YES 2 908 YES 2 909 YES 2 910 YES 2 910 YES