Are you struggling with “excessive backup times” or “insufficient disk space” in your Oracle Database operations? In short, by utilizing incremental backups, you can efficiently save only the data blocks that have changed. This article provides an easy-to-understand explanation for beginners regarding the mechanisms of cumulative and differential incremental backups, criteria for choosing between them, and specific RMAN command examples.
- Conclusion: Which One Should You Use? Comparison Checklist
- Basic Knowledge of Incremental Backups and Level Definitions
- What is the Difference Between Differential and Cumulative Incremental Backups?
- [Diagram] Comparison of Backup Images
- Implementation: RMAN Backup Execution Examples
- Troubleshooting: Common ORA Errors and Solutions
- Operational Considerations and Security
- FAQ: Frequently Asked Questions
- Summary
Conclusion: Which One Should You Use? Comparison Checklist
Here is a “To-Do List” and decision criteria when establishing your backup strategy:
- Choose Differential Incremental Backup if you want to minimize backup time and save storage capacity.
- Choose Cumulative Incremental Backup if you want to make recovery tasks simpler and faster in the event of a failure.
- Determine Operational Policy: It is common practice to take a “Level 0 (Full)” once a week and a “Level 1 (Incremental)” daily.
Basic Knowledge of Incremental Backups and Level Definitions
Incremental backup is a method that copies only the data blocks changed since the previous backup. In Oracle, these are managed using the concept of “levels.”
- Level 0 (Incremental Level 0): The foundational backup. It backs up all data blocks (effectively a full backup, but mandatory as the starting point for an incremental strategy).
- Level 1 (Incremental Level 1): Backs up changes since Level 0 or another Level 1. There are two types: “Differential” and “Cumulative.”
What is the Difference Between Differential and Cumulative Incremental Backups?
The biggest difference lies in the reference point: “from what point in time are the changes captured?”
1. Differential Incremental Backup
This is the default setting. It captures changes since the “most recent Level 1 (or Level 0).”
- Pros: Daily backup volume is kept to a minimum.
- Cons: During recovery, all “Level 1” backups for every day since the Level 0 must be applied in order, which takes time.
2. Cumulative Incremental Backup
This captures all changes since the “most recent Level 0.”
- Pros: During recovery, you only need the “Level 0” and the “latest Cumulative Level 1,” making the process faster.
- Cons: As more days pass since the Level 0, the backup size grows larger.
[Diagram] Comparison of Backup Images
Differential Increment *Default
Mon(L0) ── Tue(L1) ── Wed(L1) ── Thu(L1)
[Tue only] [Wed only] [Thu only]
Cumulative Increment
Mon(L0) ── Tue(L1) ── Wed(L1) ── Thu(L1)
[Tue only] [Tue+Wed] [Tue+Wed+Thu]
Implementation: RMAN Backup Execution Examples
Execution requires SYSBACKUP or SYSDBA privileges. In CDB/PDB environments, the scope depends on the connection target (Root or individual PDB).
Prerequisites
- The target database must be in
ARCHIVELOG mode. - You must be connected via RMAN (Recovery Manager).
1. Taking an Incremental Level 0 (Foundation)
This serves as the starting point for all incremental backups.
-- Execute Level 0 backup of the entire database
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
Intent: Scans all data blocks and creates a baseline for applying increments.
2. Taking a Cumulative Incremental Level 1
Explicitly include the CUMULATIVE keyword.
-- Back up all changes since Level 0
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
Intent: Consolidates all changes since the last Level 0 into a single backup set.
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
Starting backup at 16-FEB-25
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/V19/system01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/V19/sysaux01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/V19/undotbs01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/V19/rctbs01.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/V19/users01.dbf
channel ORA_DISK_1: starting piece 1 at 16-FEB-25
channel ORA_DISK_1: piece 1 completed at 16-FEB-25
piece handle=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/133huqn2_35_1_1 tag=TAG20250216T155514 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
Finished backup at 16-FEB-25
Starting Control File and SPFILE Autobackup at 16-FEB-25
piece handle=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250216-0b comment=NONE
Finished Control File and SPFILE Autobackup at 16-FEB-25
3. Taking a Differential Incremental Level 1
If no keyword is specified, it automatically becomes differential.
-- Back up only changes since the most recent Level 1 or 0
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
Troubleshooting: Common ORA Errors and Solutions
| Error Code | Cause | Countermeasure |
| ORA-19606 | Backup target is read-only | Check if the configuration includes read-only files. |
| ORA-19504 | Insufficient disk space at destination | Cumulative increments grow in size; ensure space is allocated. |
| ORA-15025 | Failed to access ASM disk | Check privilege settings and disk group status. |
Operational Considerations and Security
- Block Change Tracking (BCT): To accelerate incremental backups, it is strongly recommended to enable the BCT feature. Without it, Oracle must scan all data files to find changed portions.
-- Enabling BCT (Execute SQL with SYSDBA privileges)
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u01/app/oracle/oradata/bct_file.trc';
- Security: Backup pieces contain sensitive data. Consider using encryption with
CONFIGURE ENCRYPTION FOR DATABASE ON;. - Verifying Restores: The goal of a backup is to be “recoverable.” Regularly check consistency with
RESTORE DATABASE VALIDATE;.
FAQ: Frequently Asked Questions
Q: Can incremental backups be used in Standard Edition 2 (SE2)?
A: Yes, RMAN incremental backups are available in SE2. However, “Block Change Tracking” for acceleration is an Enterprise Edition (EE) exclusive feature.
Q: Are there Level 2 or Level 3 backups?
A: They existed in older versions, but currently, only Level 0 and Level 1 are supported.
Q: Which consumes more storage: Cumulative or Differential?
A: Generally, if taken at the same frequency, “Cumulative Increments” consume more storage because they include redundant data.
Summary
- Incremental Backups copy only changed blocks, providing efficient data protection.
- Differential Increments use the “most recent backup” as the starting point. Size is minimal; recovery is slightly slower.
- Cumulative Increments use the “most recent Level 0” as the starting point. Size is larger; recovery is faster.
- In 19c operations, consider using “Block Change Tracking” to reduce backup time.
This article is based on Oracle Database 19c (screens and default values may vary in other versions).
[reference]
Oracle Database Backup and Recovery Reference, 19c


コメント