Block change tracking is a new capability in Oracle 10g. The block change tracking process records the blocks modified since the last backup and stores them in a block change tracking file. RMAN uses this file to determine the blocks that were backed up in an incremental backup. This improves performance because RMAN doesn't have to scan the whole datafile during the backup.
In prior versions, RMAN had to scan the entire datafile. This wasn't significant on smaller databases, but larger databases took considerable time to back up, even if there were no significant block changes since the last backup. This change was a big improvement for large databases. The backup process is initiated with RMAN querying the block change tracking file to determine the changed blocks. Next, RMAN backs up only the changed blocks and skips the unchanged blocks. This reduces the amount of blocks required in backup to the amount of changes. See Figure 2.2 for more details.
Block change tracking is enabled and disabled with a SQL command. By default, block change tracking is disabled. Block change tracking status can be verified by accessing a dynamic view V$BLOCK_CHANGE_TRACKING. Let's walk through these commands.
To enable block change tracking, take these steps:
C:Documents and Settings>sqlplus /nolog SQL*Plus: Release 10.1.0.2.0 - Production on Sun Jun 6 12:32:30 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. SQL> connect / as sysdba Connected. SQL> alter database enable block change tracking using 2 file 'C:oraclelock_trackora101c_block_track.log'; Database altered. SQL>
NOTE
There is a new background process responsible for writing data to the block change tracking file, which is called the block change writer CTRW.
To verify the status of block change tracking, use this SELECT command:
SQL> select filename,status,bytes from v$block_change_tracking; FILENAME ----------------------------------------------------------------------- STATUS BYTES ---------- ---------- C:ORACLEBLOCK_TRACKORA101C_BLOCK_TRACK.LOG ENABLED 11599872 SQL>
To disable block change tracking, enter this command:
SQL> alter database disable block change tracking; Database altered. SQL>