Block Change Tracking in Oracle

Block change tracking (BCT) is an oracle feature that improves the performance of incremental backups.


Block change tracking (BCT) in Oracle

Suppose we have a level 0 backup and want to make a level 1 backup. During the level 1 backup, oracle will scan all the blocks from the last level 0 backup and identify those which have been modified. Once this action has been performed, Oracle will save only all of the modified blocks.


Block change tracking (BCT)

With Oracle’s Block Change Tracking (BCT) functionality, you no longer need to scan all blocks from a previous incremental backup. Indeed BCT uses a background process called Change Tracking Writer (CTWR). The role of the CTWR is to track all the modified blocks and then identify them in a tracking file. By default, the BCT function is disabled. That means, oracle does not save block change information.

To check the status of the BCT, please execute the following command :

SQL> select status from v$block_change_tracking;





Let’s activate  block change

SQL> alter database enable block change tracking using file '+DATA';

The “using file” clause specifies the location of the BCT file on the OS. If you omit this clause, the Oracle Managed File (OMF) option will be enabled.


To activate the block change using the OMF option, execute the command below:

SQL> alter database enable block change tracking;


Now, let’s check again the status of the BCT after activation

SQL> col filename format a46

SQL> col status format a12

SQL>  select status, filename from v$block_change_tracking;


------------ ----------------------------------------------



To know the size of the BCT, execute the following command:

SQL> select status, filename, bytes from v$block_change_tracking;

STATUS       FILENAME                                            BYTES

------------ ---------------------------------------------- ----------

ENABLED      +DATA/ACHATS/CHANGETRACKING/ctf.288.1027782031   11599872


To deactivate the block change tracking, execute the following command:

SQL> alter database disable block change tracking;






Do you want to learn more details about RMAN, then Click this Link and read the articles.



An IT professional with more than 4 years of experience as an Oracle database administrator. Extensive installation experience (RAC and stand-alone), administration, implementation, troubleshooting, Oracle 12c / 11g tuning, export / import, OEM grid control, Data Guard on Unix, Rman backup / restore, upgrade, migration , correction (RDBMS, GRID) PSU & CPU, Database migration. I like everything about the Oracle & DB2 database. For me, sharing is the best thing we can offer in this job. And learning is not an option but a duty for database administrators.

Leave a Reply

Your email address will not be published. Required fields are marked *