What is incremental backup?
In the early days of databases, if you had a 10TB database, you had to back up all 10TB every single night. It was slow, it ate up storage, and it crushed system performance.
RMAN Incremental Backups changed the game. Instead of copying the entire database every time, an incremental backup only copies the blocks that have changed since the last backup.
Think of it like this: If you are writing a book, a "Full Backup" is printing the whole manuscript every night. An "Incremental Backup" is just printing the new pages you wrote today.
Oracle uses a numbering system to keep track of what needs to be backed up.
A Level 0 backup is physically identical to a "Full Backup."
A Level 1 backup only grabs the blocks that were modified after the last Level 0 (or Level 1).
Differential (Default): Backs up all changed blocks since the most recent Level 1 or Level 0 backup.
Cumulative: Backs up all changed blocks since the most recent Level 0 backup.
By default, RMAN has to scan every block in your database to see if it changed, which can still take time. If you enable Block Change Tracking (BCT), Oracle maintains a small binary file that keeps a map of exactly which blocks have changed.
Result: RMAN reads the map and goes straight to the changed blocks.
Since you aren't storing the same static data over and over, you save a massive amount of disk or cloud storage space.
While restoring multiple incremental pieces can sometimes be slower than one big file, using Incrementally Updated Backups (where the Level 1 is "merged" into the image copy daily) gives you the best of both worlds: fast backups and near-instant restores.
| Feature | Full Backup | Incremental Backup |
| Data Copied | Every used block in the file. | Only changed blocks. |
| Backup Time | Long (proportional to DB size). | Short (proportional to change rate). |
| I/O Impact | High. | Low (with BCT enabled). |
| Storage Required | 100% of DB size. | 5–10% (typical daily change). |
To start an incremental strategy, you first take the parent backup:
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
Then, on subsequent nights, you take the daily changes:
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
For most modern production databases, a "Level 0 on Sunday, Level 1 Monday-Saturday" strategy is the sweet spot. It provides a reliable recovery window while keeping the daily "performance tax" on your production server to an absolute minimum.
Peer Tip: Always monitor your "Change Rate." If your database is under a massive batch load where 90% of the blocks change every day, an incremental backup will take just as long as a full one. Incremental backups are most effective when your daily change rate is under 20%.