Conducting Incremental Bakups in Oracle Database 12c

By: Ian Abramson, Michael Abbey, Michelle Malcher, Michael Corey


The data in the databases always grows, and as the backup is a copy of the data, it grows too. As the size of the backup grows, it takes more space on the disk and it takes more time to back up. When the database becomes large, you still want to back it up faster to avoid any risk of losing any data.

In your database, the majority of your data doesn’t change daily. Rather, only some of it changes daily or maybe weekly, and some new data comes in with the time. So you likely have a huge amount of data that doesn’t change, and so there is no need to back it up daily. What you can do here is start by taking a full backup of the database one day, and then take the backup of only that data that has changed or is new, and do that daily. This is called an incremental approach to backup. The first backup is called a level 0 backup and then the subsequent backups are called level 1 backups. A level 0 backup of a database can be taken with the following command:

p271-01

A level 1 backup of the database can be taken with the following command:

 p271-02

One of the most common approaches to writing RMAN backups over a work week is shown in Figure 1 where the size of each rectangle reflects the amount of data written to each backup.

fig6-3
FIGURE 1.   A week’s worth of RMAN backup levels

This is where the power of incremental backups comes into play because

  • Consistent backups are written every day, with Monday to Saturday’s backups taking less time to complete and occupying less precious storage.
  • A recovery activity on a Tuesday can be satisfied by overwriting database blocks that were backed up on the previous Sunday and days up to and including when the disaster occurred. In other words Sunday + Monday + Tuesday = required recovery.

Leave a Reply