Block change tracking file keeps track of all changes to blocks of datafile since the last incremental backup. So while taking incremental backup, RMAN will read this tracking file, instead of going through all the blocks to find the changed blocks. It hugely reduced the incremental backup time.

 

How to enable block change tracking:

SQL> select name from v$database;

NAME
---------
TESTDB

SQL> select filename,status from v$block_change_tracking;

FILENAME
--------------------------------------------------------------------------------
STATUS
----------

DISABLED



SQL> alter database enable block change tracking using file '/export/home/oracle/RMAN/TESTDB/TRACKING_FILE/block_change_TESTDB.log';

Database altered.



SQL> select filename,status from v$block_change_tracking;

FILENAME
--------------------------------------------------------------------------------
STATUS
----------
/export/home/oracle/RMAN/TESTDB/TRACKING_FILE/block_change_TESTDB.log
ENABLED