Will I have to restore controlfile in RMAN level 1 backupset before recover database

oracleoracle-11g-r2recoveryrestorerman

For example, I have a level 0 and level 1 RMAN backupset files like
inr00_0413_*
inr01_0413_1_*
Is it necessary to do this when recover from RMAN level 1 backup:

restore controlfile from inr01_0413_1_ctl_file_9jr2v0te_1_1_20160413;

Or I just:

catalog start with '/u02/rmanbackup/';  
recover database;

If not restore controlfile, after resotre and recover will get error:

ORA-16004: backup database requires recovery

ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '+DATA1/rac/datafile/system1.dbf'

Can't do

SQL> recover database using backup controlfile until cancel  

Or

RMAN> sql 'alter database open read only';

Backupset files:

[oracle@dbsrv01] ll /u02/rmanbackup/
Apr 13 20:53 block_change_tracking.ctf
Apr 13 19:44 inr00_0413_arc_8pr2uqq2_1_1_RAC_20160413_42265
Apr 13 19:44 inr00_0413_arc_8qr2uqq2_1_1_RAC_20160413_42266
Apr 13 19:44 inr00_0413_ctl_file_8rr2uqqa_1_1_20160413
Apr 13 19:44 inr00_0413_dbf_8er2uqcc_1_1_RAC_20160413_42254
Apr 13 19:46 inr00_0413_dbf_8fr2uqcc_1_1_RAC_20160413_42255
Apr 13 19:48 inr00_0413_dbf_8gr2uqcc_1_1_RAC_20160413_42256
Apr 13 19:50 inr00_0413_dbf_8hr2uqcc_1_1_RAC_20160413_42257
Apr 13 19:51 inr00_0413_dbf_8ir2uqcc_1_1_RAC_20160413_42258
Apr 13 19:52 inr00_0413_dbf_8jr2uqcc_1_1_RAC_20160413_42259
Apr 13 19:52 inr00_0413_dbf_8kr2uqcc_1_1_RAC_20160413_42260
Apr 13 19:52 inr00_0413_dbf_8lr2uqcc_1_1_RAC_20160413_42261
Apr 13 19:52 inr00_0413_dbf_8mr2uqcc_1_1_RAC_20160413_42262
Apr 13 19:52 inr00_0413_dbf_8nr2uqcc_1_1_RAC_20160413_42263
Apr 13 19:52 inr00_0413_dbf_8or2uqcc_1_1_RAC_20160413_42264
Apr 13 19:52 inr00_0413_spfile_8sr2uqqc_1_1_20160413
Apr 13 20:50 inr01_0413_1_arc_9gr2v0t5_1_1_RAC_20160413_42288
Apr 13 20:50 inr01_0413_1_arc_9hr2v0t5_1_1_RAC_20160413_42289
Apr 13 20:50 inr01_0413_1_arc_9ir2v0tc_1_1_RAC_20160413_42290
Apr 13 20:50 inr01_0413_1_ctl_file_9jr2v0te_1_1_20160413
Apr 13 20:50 inr01_0413_1_dbf_95r2v0sv_1_1_RAC_20160413_42277
Apr 13 20:50 inr01_0413_1_dbf_96r2v0sv_1_1_RAC_20160413_42278
Apr 13 20:50 inr01_0413_1_dbf_97r2v0t0_1_1_RAC_20160413_42279
Apr 13 20:50 inr01_0413_1_dbf_98r2v0t0_1_1_RAC_20160413_42280
Apr 13 20:50 inr01_0413_1_dbf_99r2v0t0_1_1_RAC_20160413_42281
Apr 13 20:50 inr01_0413_1_dbf_9ar2v0t0_1_1_RAC_20160413_42282
Apr 13 20:50 inr01_0413_1_dbf_9br2v0t0_1_1_RAC_20160413_42283
Apr 13 20:50 inr01_0413_1_dbf_9cr2v0t0_1_1_RAC_20160413_42284
Apr 13 20:50 inr01_0413_1_dbf_9dr2v0t0_1_1_RAC_20160413_42285
Apr 13 20:50 inr01_0413_1_dbf_9er2v0t0_1_1_RAC_20160413_42286
Apr 13 21:06 inr01_0413_1_dbf_9fr2v0t0_1_1_RAC_20160413_42287
Apr 13 21:06 inr01_0413_1_spfile_9kr2v0tg_1_1_20160413

Best Answer

The error might be a bit misleading. It is correct to restore the control file from the latest backups assuming you want to recover to as late in time as possible. If your control_file_record_keep_time is long enough to also contain the backup pieces of the level 0 backup, rman will start restoring the level 0 backup and continue with the level 1 backup. If your level 0 backup is not visible in the restored control file you need to do the catalog so the info gets loaded into the control file.

The problem is with the ending of the recovery because the database keeps requesting archives until it sees the end of redo marker. This means that there was a clean shutdown. If everything is OK, you also have the archive log files, in backup or in the archive destination.

To get this database open after restoring the level 0 backup, you have to prepare the restore by setting until what moment the recovery has to be done. Without this setting the recovery will try to recover almost forever.

set until can be done until time or until sequence or until scn. It is my guess that "

Apr 13 21:06 inr01_0413_1_dbf_9fr2v0t0_1_1_RAC_20160413_42287

" is a backup of log sequence 42287 so your recovery would succeed if you specify

set until sequence 42287 {
restore database;
recover database;
}