Block change tracking
                                                 Last update (2008-05-09 17:38:58)
                                                                                                                   Date added (2008-02-27 14:19:19)

Oracle 10g offers a new feature, called block change tracking. This feature allows for faster creation of incremental backups.

Changes to the database blocks are now tracked using a tracking file. When the block change tracking is enabled, Oracle logs changes to the blocks in this tracking file. During the incremental backup, RMAN reads the tracking file to determine changed blocks. This obviates the need to read each and every block in a datafile and thus results in faster incremental backups.

Enable block change tracking
SQL> ALTER DATABASE ENABLE BLOCK CHANGE tracking USING FILE "/filesyste01/oradata/SID/block_change_tracking.bct";
Disable block change tracking
SQL> alter database disable block change tracking;
This command also removes the change tracking file.

Determining if block change tracking is enabled
Information about block change tracking and the tracking file is stored in the controlfile and can be accessed using the V$BLOCK_CHANGE_TRACKING view:
SQL> desc v$block_change_tracking;

Name                     Null?                   Type
-------------------      --------------          ------------------
STATUS                                           VARCHAR2(10)
FILENAME                                         VARCHAR2(513)
BYTES                                            NUMBER 
This view always contains one record. If the STATUS is ENABLED, then the FILENAME contains the name of the file being used for tracking and BYTES contains the size of the file. If the STATUS is DISABLED, the other two columns are null.

The V$BACKUP_DATAFILE view contains a column called USED_CHANGE_TRACKING. A value of YES for this column for an incremenat backup level > 0 means that RMAN used the tracking file to speed up the incremental backup. This can help you determine how effective the the tracking file in minimizing the I/O activity during an incremental backup. The following query can be used:
select file#,
       avg(blocks_read/datafile_blocks) * 100 as “% read for backup”
from   v$backup_datafile
where  incremental_level > 0
and    used_change_tracking = ˇYES˘
group  by file#
order  by file#;
Oracle DBA-> (147)
  Alertlog (3)
  Archivelog (5)
  Auditing (1)
  Backup - Recovery (19)
  Database files (6)
  Database options (2)
  DB links (2)
  Dependencies (1)
  Dictionary (2)
  Exp-Imp Datapump (6)
  Jobs (2)
  Mview (2)
  Networking (3)
  Objects (7)
  Parameters (2)
  Redologs (6)
  Roles - Grants (2)
  Rollback - Undo (8)
  Segments (3)
  Sequences (2)
  Sessions (14)
  SGA (14)
  Tables (10)
  Tablespaces (10)
  Temp (4)
  Toad (5)
  Transactions (1)
  Upgrade (2)
  Users (3)
Oracle APPS DBA-> (66)
Exadata (1)
Performance Tuning-> (59)
Oracle Real Cases (24)
Oracle Errors (23)
Oracle SQL tricks (32)
Oracle RAC (3)
Oracle Security (8)