Here is a simple demo for how to restore RMAN backup in case of failed migration using RMAN tag.
List backup from File System:
[oracle@db-fs-1 ~]$ ls -alrt /u01/backup/*MIGRATION*
-rw-r----- 1 oracle oinstall 12886016 Feb 18 21:56 /u01/backup/HAWK_3291419015_20200218_1cuosf50_1_1_MIGRATION_44
-rw-r----- 1 oracle oinstall 1073152 Feb 18 21:56 /u01/backup/HAWK_3291419015_20200218_1duosf58_1_1_MIGRATION_45
-rw-r----- 1 oracle oinstall 112263168 Feb 18 21:57 /u01/backup/HAWK_3291419015_20200218_1buosf50_1_1_MIGRATION_43
-rw-r----- 1 oracle oinstall 212926464 Feb 18 21:57 /u01/backup/HAWK_3291419015_20200218_1auosf50_1_1_MIGRATION_42
-rw-r----- 1 oracle oinstall 2946560 Feb 18 21:57 /u01/backup/HAWK_3291419015_20200218_1euosf61_1_1_MIGRATION_46
-rw-r----- 1 oracle oinstall 114688 Feb 18 21:57 /u01/backup/HAWK_3291419015_20200218_1fuosf63_1_1_MIGRATION_47
-rw-r----- 1 oracle oinstall 1114112 Feb 18 21:57 /u01/backup/HAWK_3291419015_20200218_1guosf64_1_1_MIGRATION_48
-rw-r----- 1 oracle oinstall 3584 Feb 18 21:57 /u01/backup/HAWK_3291419015_20200218_1iuosf67_1_1_MIGRATION_50
-rw-r----- 1 oracle oinstall 2946560 Feb 18 21:57 /u01/backup/HAWK_3291419015_20200218_1huosf67_1_1_MIGRATION_49
-rw-r----- 1 oracle oinstall 1114112 Feb 18 21:57 /u01/backup/CTL_HAWK_3291419015_20200218_1juosf6a_1_1_MIGRATION_51
-rw-r----- 1 oracle oinstall 3584 Feb 18 21:57 /u01/backup/CTL_HAWK_3291419015_20200218_1kuosf6c_1_1_MIGRATION_52
-rw-r----- 1 oracle oinstall 114688 Feb 18 21:57 /u01/backup/CTL_HAWK_3291419015_20200218_1luosf6e_1_1_MIGRATION_53
-rw-r----- 1 oracle oinstall 1114112 Feb 18 21:57 /u01/backup/CTL_HAWK_3291419015_20200218_1muosf6f_1_1_MIGRATION_54
[oracle@db-fs-1 ~]$
List backup from RMAN:
[oracle@db-fs-1 ~]$ rman target /
Recovery Manager: Release 12.2.0.1.0 - Production on Wed Feb 19 04:21:17 2020
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
connected to target database: HAWK (DBID=3291419015)
RMAN> list backup summary tag='MIGRATION';
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- -------------------- ------- ------- ---------- ---
39 B 0 A DISK 2020-FEB-18 21:56:52 1 1 YES MIGRATION
40 B 0 A DISK 2020-FEB-18 21:56:56 1 1 YES MIGRATION
41 B 0 A DISK 2020-FEB-18 21:57:11 1 1 YES MIGRATION
42 B 0 A DISK 2020-FEB-18 21:57:17 1 1 YES MIGRATION
43 B A A DISK 2020-FEB-18 21:57:22 1 1 YES MIGRATION
44 B F A DISK 2020-FEB-18 21:57:23 1 1 YES MIGRATION
45 B F A DISK 2020-FEB-18 21:57:25 1 1 YES MIGRATION
46 B A A DISK 2020-FEB-18 21:57:27 1 1 YES MIGRATION
47 B A A DISK 2020-FEB-18 21:57:27 1 1 YES MIGRATION
48 B F A DISK 2020-FEB-18 21:57:31 1 1 YES MIGRATION
49 B A A DISK 2020-FEB-18 21:57:32 1 1 YES MIGRATION
50 B F A DISK 2020-FEB-18 21:57:34 1 1 YES MIGRATION
52 B F A DISK 2020-FEB-18 21:57:36 1 1 YES MIGRATION
RMAN> list backup of database summary tag='MIGRATION';
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- -------------------- ------- ------- ---------- ---
39 B 0 A DISK 2020-FEB-18 21:56:52 1 1 YES MIGRATION
40 B 0 A DISK 2020-FEB-18 21:56:56 1 1 YES MIGRATION
41 B 0 A DISK 2020-FEB-18 21:57:11 1 1 YES MIGRATION
42 B 0 A DISK 2020-FEB-18 21:57:17 1 1 YES MIGRATION
RMAN> list backup of archivelog all summary tag='MIGRATION';
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- -------------------- ------- ------- ---------- ---
43 B A A DISK 2020-FEB-18 21:57:22 1 1 YES MIGRATION
46 B A A DISK 2020-FEB-18 21:57:27 1 1 YES MIGRATION
47 B A A DISK 2020-FEB-18 21:57:27 1 1 YES MIGRATION
49 B A A DISK 2020-FEB-18 21:57:32 1 1 YES MIGRATION
RMAN> list backup of controlfile summary tag='MIGRATION';
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- -------------------- ------- ------- ---------- ---
45 B F A DISK 2020-FEB-18 21:57:25 1 1 YES MIGRATION
48 B F A DISK 2020-FEB-18 21:57:31 1 1 YES MIGRATION
52 B F A DISK 2020-FEB-18 21:57:36 1 1 YES MIGRATION
RMAN> list backup of spfile summary tag='MIGRATION';
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- -------------------- ------- ------- ---------- ---
44 B F A DISK 2020-FEB-18 21:57:23 1 1 YES MIGRATION
50 B F A DISK 2020-FEB-18 21:57:34 1 1 YES MIGRATION
RMAN> list backupset 42,49,50,52;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ --------------------
42 Incr 0 203.05M DISK 00:00:29 2020-FEB-18 21:57:17
BP Key: 42 Status: AVAILABLE Compressed: YES Tag: MIGRATION
Piece Name: /u01/backup/HAWK_3291419015_20200218_1auosf50_1_1_MIGRATION_42
Keep: BACKUP_LOGS Until: 2020-AUG-18 21:56:48
List of Datafiles in backup set 42
File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name
---- -- ---- ---------- -------------------- ----------- ------ ----
1 0 Incr 1428959 2020-FEB-18 21:56:48 NO /u02/oradata/HAWK/datafile/o1_mf_system_h4s874gt_.dbf
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ --------------------
49 3.00K DISK 00:00:00 2020-FEB-18 21:57:32
BP Key: 49 Status: AVAILABLE Compressed: YES Tag: MIGRATION
Piece Name: /u01/backup/CTL_HAWK_3291419015_20200218_1kuosf6c_1_1_MIGRATION_52
Keep: BACKUP_LOGS Until: 2020-AUG-18 21:57:32
List of Archived Logs in backup set 49
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- -------------------- ---------- ---------
1 3 1429002 2020-FEB-18 21:57:26 1429040 2020-FEB-18 21:57:32
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ --------------------
50 Full 96.00K DISK 00:00:00 2020-FEB-18 21:57:34
BP Key: 50 Status: AVAILABLE Compressed: YES Tag: MIGRATION
Piece Name: /u01/backup/CTL_HAWK_3291419015_20200218_1luosf6e_1_1_MIGRATION_53
Keep: BACKUP_LOGS Until: 2020-AUG-18 21:57:33
SPFILE Included: Modification time: 2020-FEB-18 21:51:45
SPFILE db_unique_name: HAWK
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ --------------------
52 Full 1.05M DISK 00:00:01 2020-FEB-18 21:57:36
BP Key: 52 Status: AVAILABLE Compressed: YES Tag: MIGRATION
Piece Name: /u01/backup/CTL_HAWK_3291419015_20200218_1muosf6f_1_1_MIGRATION_54
Keep: BACKUP_LOGS Until: 2020-AUG-18 21:57:35
Control File Included: Ckp SCN: 1429047 Ckp time: 2020-FEB-18 21:57:35
RMAN>
You are probably wondering why BS 49 with Piece Name: /u01/backup/CTL_HAWK_3291419015_20200218_1kuosf6c_1_1_MIGRATION_52 contains archivelog?
RMAN backup script:
[oracle@db-fs-1 ~]$ cat /u01/backup/backup_keep.rman
spool log to /u01/backup/rman_keep_backup_migration.log
connect target;
set echo on
show all;
run {
allocate channel c1 device type disk format '/u01/backup/%d_%I_%T_%U_MIGRATION_%s' MAXPIECESIZE 2G MAXOPENFILES 1;
allocate channel c2 device type disk format '/u01/backup/%d_%I_%T_%U_MIGRATION_%s' MAXPIECESIZE 2G MAXOPENFILES 1;
allocate channel c3 device type disk format '/u01/backup/%d_%I_%T_%U_MIGRATION_%s' MAXPIECESIZE 2G MAXOPENFILES 1;
backup as compressed backupset incremental level 0 filesperset 1 check logical database
keep until time 'ADD_MONTHS(SYSDATE,6)' TAG='MIGRATION';
backup as compressed backupset archivelog from time 'trunc(sysdate)'
filesperset 8
keep until time 'ADD_MONTHS(SYSDATE,6)' TAG='MIGRATION';
}
run {
allocate channel c1 device type disk format '/u01/backup/CTL_%d_%I_%T_%U_MIGRATION_%s';
backup as compressed backupset current controlfile
keep until time 'ADD_MONTHS(SYSDATE,6)' TAG='MIGRATION';
}
LIST BACKUP OF DATABASE SUMMARY TAG='MIGRATION';
LIST BACKUP OF ARCHIVELOG ALL SUMMARY TAG='MIGRATION';
LIST BACKUP OF CONTROLFILE TAG='MIGRATION';
report schema;
exit
[oracle@db-fs-1 ~]$
RMAN backup log snippet:
allocated channel: c1
channel c1: SID=57 device type=DISK
Starting backup at 2020-FEB-18 21:57:30
backup will be obsolete on date 2020-AUG-18 21:57:30
archived logs required to recover from this backup will be backed up
channel c1: starting compressed full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
channel c1: starting piece 1 at 2020-FEB-18 21:57:31
channel c1: finished piece 1 at 2020-FEB-18 21:57:32
piece handle=/u01/backup/CTL_HAWK_3291419015_20200218_1juosf6a_1_1_MIGRATION_51 tag=MIGRATION comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
current log archived
backup will be obsolete on date 2020-AUG-18 21:57:32
archived logs required to recover from this backup will be backed up
channel c1: starting compressed archived log backup set
channel c1: specifying archived log(s) in backup set
******* input archived log thread=1 sequence=3 RECID=30 STAMP=1032731852 *******
channel c1: starting piece 1 at 2020-FEB-18 21:57:32
channel c1: finished piece 1 at 2020-FEB-18 21:57:33
piece handle=/u01/backup/CTL_HAWK_3291419015_20200218_1kuosf6c_1_1_MIGRATION_52 tag=MIGRATION comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Restore backup from RMAN:
RMAN> startup force nomount;
Oracle instance started
Total System Global Area 805306368 bytes
Fixed Size 8625856 bytes
Variable Size 314573120 bytes
Database Buffers 478150656 bytes
Redo Buffers 3956736 bytes
RMAN> restore controlfile from '/u01/backup/CTL_HAWK_3291419015_20200218_1muosf6f_1_1_MIGRATION_54';
Starting restore at 2020-FEB-19 03:41:37
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=35 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u02/fra/HAWK/controlfile/o1_mf_h4r8xqh6_.ctl
Finished restore at 2020-FEB-19 03:41:38
RMAN> alter database mount;
RMAN> catalog start with '/u01/backup' noprompt;
RMAN> restore database preview summary from tag='MIGRATION';
Starting restore at 2020-FEB-19 03:43:05
using channel ORA_DISK_1
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- -------------------- ------- ------- ---------- ---
42 B 0 A DISK 2020-FEB-18 21:57:17 1 1 YES MIGRATION
41 B 0 A DISK 2020-FEB-18 21:57:11 1 1 YES MIGRATION
39 B 0 A DISK 2020-FEB-18 21:56:52 1 1 YES MIGRATION
40 B 0 A DISK 2020-FEB-18 21:56:56 1 1 YES MIGRATION
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- -------------------- ------- ------- ---------- ---
47 B A A DISK 2020-FEB-18 21:57:27 1 1 YES MIGRATION
recovery will be done up to SCN 1428959
Media recovery start SCN is 1428959
Recovery must be done beyond SCN 1428964 to clear datafile fuzziness
Finished restore at 2020-FEB-19 03:43:05
RMAN> restore database from tag='MIGRATION';
RMAN> recover database until scn 1428965;
Starting recover at 2020-FEB-19 03:44:45
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 02/19/2020 03:44:45
RMAN-20208: UNTIL CHANGE is before RESETLOGS change
RMAN> list incarnation of database;
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 HAWK 3291419015 PARENT 1 2017-JAN-26 13:52:29
2 2 HAWK 3291419015 PARENT 1408558 2020-FEB-18 18:49:45
3 3 HAWK 3291419015 PARENT 1424305 2020-FEB-18 20:02:49
4 4 HAWK 3291419015 PARENT 1425161 2020-FEB-18 20:19:50
5 5 HAWK 3291419015 PARENT 1425162 2020-FEB-18 20:33:05
6 6 HAWK 3291419015 PARENT 1426203 2020-FEB-18 21:13:15
7 7 HAWK 3291419015 CURRENT 1428966 2020-FEB-18 22:05:54
RMAN> recover database until scn 1428967;
Starting recover at 2020-FEB-19 03:47:41
using channel ORA_DISK_1
starting media recovery
channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=1
channel ORA_DISK_1: reading from backup piece /u01/backup/HAWK_3291419015_20200218_1huosf67_1_1_MIGRATION_49
channel ORA_DISK_1: piece handle=/u01/backup/HAWK_3291419015_20200218_1huosf67_1_1_MIGRATION_49 tag=MIGRATION
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
archived log file name=/u02/oradata/HAWK/archivelog/2020_02_19/o1_mf_1_1_h4s8gfjc_.arc thread=1 sequence=1
archived log file name=/u02/oradata/HAWK/archivelog/2020_02_19/o1_mf_1_1_h4rx8c8b_.arc thread=1 sequence=1
channel default: deleting archived log(s)
archived log file name=/u02/oradata/HAWK/archivelog/2020_02_19/o1_mf_1_1_h4s8gfjc_.arc RECID=32 STAMP=1032752861
media recovery complete, elapsed time: 00:00:00
Finished recover at 2020-FEB-19 03:47:42
RMAN> alter database open resetlogs;
Statement processed
RMAN> report schema;
Report of database schema for database with db_unique_name HAWK
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 800 SYSTEM YES /u02/oradata/HAWK/datafile/o1_mf_system_h4s874gt_.dbf
3 470 SYSAUX NO /u02/oradata/HAWK/datafile/o1_mf_sysaux_h4s86of7_.dbf
4 70 UNDOTBS1 YES /u02/oradata/HAWK/datafile/o1_mf_undotbs1_h4s86kbl_.dbf
7 5 USERS NO /u02/oradata/HAWK/datafile/o1_mf_users_h4s86ncz_.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 20 TEMP 32767 /u02/oradata/HAWK/datafile/o1_mf_temp_h4s8jc3n_.tmp
RMAN> delete force noprompt backup tag='MIGRATION';
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=53 device type=DISK
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
39 39 1 1 AVAILABLE DISK /u01/backup/HAWK_3291419015_20200218_1cuosf50_1_1_MIGRATION_44
40 40 1 1 AVAILABLE DISK /u01/backup/HAWK_3291419015_20200218_1duosf58_1_1_MIGRATION_45
41 41 1 1 AVAILABLE DISK /u01/backup/HAWK_3291419015_20200218_1buosf50_1_1_MIGRATION_43
42 42 1 1 AVAILABLE DISK /u01/backup/HAWK_3291419015_20200218_1auosf50_1_1_MIGRATION_42
43 43 1 1 AVAILABLE DISK /u01/backup/HAWK_3291419015_20200218_1euosf61_1_1_MIGRATION_46
44 44 1 1 AVAILABLE DISK /u01/backup/HAWK_3291419015_20200218_1fuosf63_1_1_MIGRATION_47
45 45 1 1 AVAILABLE DISK /u01/backup/HAWK_3291419015_20200218_1guosf64_1_1_MIGRATION_48
46 46 1 1 AVAILABLE DISK /u01/backup/HAWK_3291419015_20200218_1iuosf67_1_1_MIGRATION_50
47 47 1 1 AVAILABLE DISK /u01/backup/HAWK_3291419015_20200218_1huosf67_1_1_MIGRATION_49
48 48 1 1 AVAILABLE DISK /u01/backup/CTL_HAWK_3291419015_20200218_1juosf6a_1_1_MIGRATION_51
49 49 1 1 AVAILABLE DISK /u01/backup/CTL_HAWK_3291419015_20200218_1kuosf6c_1_1_MIGRATION_52
50 50 1 1 AVAILABLE DISK /u01/backup/CTL_HAWK_3291419015_20200218_1luosf6e_1_1_MIGRATION_53
52 52 1 1 AVAILABLE DISK /u01/backup/CTL_HAWK_3291419015_20200218_1muosf6f_1_1_MIGRATION_54
deleted backup piece
backup piece handle=/u01/backup/HAWK_3291419015_20200218_1cuosf50_1_1_MIGRATION_44 RECID=39 STAMP=1032731809
deleted backup piece
backup piece handle=/u01/backup/HAWK_3291419015_20200218_1duosf58_1_1_MIGRATION_45 RECID=40 STAMP=1032731816
deleted backup piece
backup piece handle=/u01/backup/HAWK_3291419015_20200218_1buosf50_1_1_MIGRATION_43 RECID=41 STAMP=1032731808
deleted backup piece
backup piece handle=/u01/backup/HAWK_3291419015_20200218_1auosf50_1_1_MIGRATION_42 RECID=42 STAMP=1032731808
deleted backup piece
backup piece handle=/u01/backup/HAWK_3291419015_20200218_1euosf61_1_1_MIGRATION_46 RECID=43 STAMP=1032731841
deleted backup piece
backup piece handle=/u01/backup/HAWK_3291419015_20200218_1fuosf63_1_1_MIGRATION_47 RECID=44 STAMP=1032731843
deleted backup piece
backup piece handle=/u01/backup/HAWK_3291419015_20200218_1guosf64_1_1_MIGRATION_48 RECID=45 STAMP=1032731845
deleted backup piece
backup piece handle=/u01/backup/HAWK_3291419015_20200218_1iuosf67_1_1_MIGRATION_50 RECID=46 STAMP=1032731847
deleted backup piece
backup piece handle=/u01/backup/HAWK_3291419015_20200218_1huosf67_1_1_MIGRATION_49 RECID=47 STAMP=1032731847
deleted backup piece
backup piece handle=/u01/backup/CTL_HAWK_3291419015_20200218_1juosf6a_1_1_MIGRATION_51 RECID=48 STAMP=1032731851
deleted backup piece
backup piece handle=/u01/backup/CTL_HAWK_3291419015_20200218_1kuosf6c_1_1_MIGRATION_52 RECID=49 STAMP=1032731852
deleted backup piece
backup piece handle=/u01/backup/CTL_HAWK_3291419015_20200218_1luosf6e_1_1_MIGRATION_53 RECID=50 STAMP=1032731854
deleted backup piece
backup piece handle=/u01/backup/CTL_HAWK_3291419015_20200218_1muosf6f_1_1_MIGRATION_54 RECID=52 STAMP=1032752561
Deleted 13 objects
RMAN> exit
Recovery Manager complete.
[oracle@db-fs-1 ~]$ ls -alrt /u01/backup/
total 28
drwxrwxr-x 6 oracle oinstall 4096 Feb 18 19:11 ..
-rw-r--r-- 1 oracle oinstall 1104 Feb 18 20:40 backup_keep.rman
-rw-r--r-- 1 oracle oinstall 12346 Feb 18 21:57 rman_keep_backup_migration.log
drwxr-xr-x 2 oracle oinstall 4096 Feb 19 04:28 .
[oracle@db-fs-1 ~]$
Just a crazy idea.
Keep the same backup tag for all backups until the next level 0.
Backup TAG for daily level 0 backup:
[oracle@db-fs-1 ~]$ echo "$(date +%Y%b%d)"
2020Feb19
[oracle@db-fs-1 ~]$
Backup TAG for weekly level 0 backup
[oracle@db-fs-1 ~]$ echo "$(date +%Y%b)_WK$(date +%U)"
2020Feb_WK07
[oracle@db-fs-1 ~]$
Backup TAG for monthly level 0 backup
[oracle@db-fs-1 ~]$ echo "$(date +%Y%b)"
2020Feb
[oracle@db-fs-1 ~]$
Tag: ARCH for archivelog backup and may not be useful.
LV=A means archivelog backup.
RMAN> list backup summary;
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- -------------------- ------- ------- ---------- ---
69 B A A DISK 2020-FEB-19 13:29:02 1 1 NO ARCH
70 B A A DISK 2020-FEB-19 13:29:03 1 1 NO ARCH
71 B F A DISK 2020-FEB-19 13:29:04 1 1 NO TAG20200219T132904
RMAN>
In writing this post, I realized the my own backup script will need some improvements.