NOTE: Once enabled; this new 10g feature records the modified since last backup and stores the log of it in a block change tracking file. During backups RMAN uses the log file to identify the specific blocks that must be backed up. This improves RMAN's performance as it does not have to scan whole datafiles to detect changed blocks.
Logging of changed blocks is performed by the CTWR process which is also responsible for writing data to the block change tracking file.
When using Oracle block change tracking we see this procedure. As data blocks change, the Change Tracking Writer (CTWR) background process tracks the changed blocks in a private area of memory.
When a commit is issued against the data block, the block change tracking information is copied to a shared area in Large Pool called the CTWR buffer. During the checkpoint, the CTWR process writes the information from the CTWR RAM buffer to the change-tracking file.
After enabling change tracking, the first level 0 incremental backup still has to scan the entire datafile, as the change tracking file does not yet reflect the status of the blocks. Subsequent incremental backup that use this level 0 as parent will take advantage of the change tracking file.
By default, Oracle will not record block change information. To enable this feature, you need to issue the following command:
Enable change tracking when the database is either open or mounted. To alter the change tracking setting, perform the following steps:
To store it in the default location:
Set the DB_CREATE_FILE_DEST parameter for the target database.
Issue the following SQL statement to enable Block Change Tracking:
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
To store it in a user-defined location, issue the following SQL statement:
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/<Location>/rman_change_track.dat' REUSE;
The REUSE option tells Oracle to overwrite an existing file with the specified name.
Important: In a RAC environment, the change-tracking must be located on shared storage that is accessible from all nodes in the cluster.
The following example stores the Block Change Tracking File in a file located in an ASM File System, which is used for shared storage in a RAC environment.
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA/oradata/block_change_tracking.dat' REUSE;
Disable block change tracking:
SELECT filename, status, bytes FROM v$block_change_tracking;
SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
Thank You!
Comments
Post a Comment