I was working on a report from our RMAN catalog and found I was having trouble reconciling the data I found in RC_BACKUP_SET with what I was expecting to see. Furthermore I couldn’t find anything in the Reference Guide to adequately explain what I was seeing.
In particular I’ll reference the descriptions of the BACKUP_TYPE and INCREMENTAL_LEVEL columns.
BACKUP_TYPE | VARCHAR2(1) | The type of the backup: D (full backup or level 0 incremental), I (incremental level 1), L (archived redo log). |
INCREMENTAL_LEVEL | NUMBER | The level of the incremental backup: NULL, 0, or 1. |
Seems pretty simple, but below I have copied an excerpt of recent backup data for a single small db. Note the two highlighted rows.
BACKUP_TYPE | INCREMENTAL_LEVEL | START_TIME | CONTROLFILE_INCLUDED |
---|---|---|---|
L | 2018-07-19 15:40:18 | NONE | |
D | 2018-07-19 15:40:21 | BACKUP | |
D |
0
|
2018-07-19 16:20:49 | NONE |
D | 2018-07-19 16:21:06 | BACKUP | |
L | 2018-07-19 16:40:12 | NONE | |
D | 2018-07-19 16:40:15 | BACKUP | |
D | 2018-07-19 19:15:20 | NONE | |
D | 2018-07-19 19:15:49 | BACKUP | |
L | 2018-07-19 19:45:11 | NONE | |
L | 2018-07-19 19:45:12 | NONE | |
D | 2018-07-19 19:45:44 | BACKUP | |
I |
0
|
2018-07-19 19:52:42 | NONE |
D | 2018-07-19 19:52:58 | BACKUP |
I know what a “Full Backup” is and I know what a “Level-0 Incremental Backup” is. From the documentation I would expect a “Full Backup” to have a backup type of “D” and an incremental level of NULL. However, at 4:20pm, my backup showed up as a “D” but with an incremental level of 0. What does that mean?
And why just a few hours later do I have another Level-0 backup, but this time instead of “full (D)” it’s “incremental (I)?” The data doesn’t seem to be consistent.
After some searches via Google and some searching on MOS, I found an explanation.
It turns out the database was upgraded from 11g to 12cR2 that day. So, at 4:20 another DBA took a backup before beginning. Then a few hours later after the upgrade was complete, the DBA took another backup. In both cases, the DBA took a Level-0 Incremental backup. The difference in the backup data is not just in the RMAN catalog RC_BACKUP_SET but also in the database’s own local V$BACKUP_SET data.
And the cause is due to changes in RMAN itself with 12c.
In older versions of the database “D” meant an offline backup, or the backup of a controlfile or an spfile. But, strangely, “D” was also used for an Incremental backup if the increment level was 0. So “I” type was only used for Incremental Level-1 backups.
Now that the database is 12c, when the Incremental Level-0 backups occur, they are recorded with the “I” type instead of the 11g “D” type.
So there is both a functional change as well as a documentation quirk to be aware of. That little change in the flag, without any obvious change in the documentation caused me quite a bit of confusion. Hopefully this will clear up the problem for others.
For more information on the RMAN change, see MOS Doc ID 2219155.1