The common misconception I observe is how the block change tracking file (BCTF) works. One of oracle published books on backup and recovery says:
“The Block Change Tracking File . By default, when doing an incremental backup, any datafile that has changed in any way will be backed up. This can make incremental backups take longer and will make them larger. RMAN offers the ability to just back up changed database blocks. This can make your incremental database backups much smaller and shorter. ” (Freeman, Hart – Oracle RMAN 11g Backup and Recovery)
This stating that the whole datafile will be backed up, which is not very correct. The incremental backup works on block level disregarding BCTF.
Lets do a test:
The environment is one big table called T1 with 6.5 million of records (6 499 987) and about 7GB of space.
1. Lets update fraction of records and do incremental backup without change tracking
~~~~
SELECT STATUS, FILENAME
FROM V$BLOCK_CHANGE_TRACKING;
STATUS FILENAME
———- ——————————————
DISABLED
update t1 set t='TEST1' where c>100000 and c<101000;
12987 rows updated.
commit;
Commit complete.
~~~~
2. Lets update fraction of records again and do incremental backup with change tracking
~~~~
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
USING FILE '/u01/oracle/oradata/fast_recovery_area/ED12/chtf01.dbf' REUSE;
Database altered.
SQL> update t1 set t='TEST1' where c>100000 and c commit;
Commit complete.
~~~~