Skip to main content

Oracle Block Change Tracking (BCT) is a feature in Oracle databases that helps improve the performance of incremental backups by tracking the changes made to database blocks.

When Block Change Tracking (BCT) is enabled, the database keeps track of all the blocks that have been modified since the last backup. This information is stored in a bitmap file, which is used by backup software to determine which blocks to backup. By only backing up the changed blocks, incremental backups can be performed more quickly and efficiently.

BCT is particularly useful in environments with large databases or where backups need to be performed frequently. It can also be used in conjunction with other backup technologies, such as snapshot-based backups or replication.

BCT can be enabled at the database or tablespace level and is compatible with both physical and logical backups. To enable BCT, the database must be running in ARCHIVELOG mode and the appropriate initialization parameters must be set.

 

Oracle BCT and RMAN:

Oracle Block Change Tracking (BCT) is closely integrated with Oracle Recovery Manager (RMAN), which is the primary backup and recovery tool for Oracle databases. RMAN uses the information provided by BCT to perform fast and efficient incremental backups.

When performing a backup using RMAN with BCT enabled, RMAN first reads the bitmap file that BCT has created to determine which blocks have changed since the last backup. It then backs up only the changed blocks, rather than the entire database. This reduces the backup time and storage requirements, and also minimizes the impact on database performance.

RMAN also uses BCT information during restore and recovery operations. When restoring a backup, RMAN uses the BCT bitmap to identify which blocks need to be restored. This helps to speed up the restore process and minimize downtime.

The integration of BCT with RMAN provides a powerful backup and recovery solution for Oracle databases. It allows for faster and more efficient backups, which can help to minimize the impact of backup operations on production systems, as well as faster recovery times in the event of a failure.

Oracle BCT and Veeam Plugin for Oracle RMAN:

Veeam Backup & Replication is a popular backup and recovery software that supports Oracle databases. The Veeam plugin for Oracle uses Oracle Block Change Tracking (BCT) to perform faster and more efficient backups of Oracle databases.

When using the Veeam plugin with BCT enabled, Veeam reads the BCT bitmap file to identify the blocks that have changed since the last backup. It then backs up only the changed blocks, which reduces the backup time and storage requirements.

The Veeam plugin also uses BCT information during restore and recovery operations. When restoring a backup, Veeam uses the BCT bitmap to identify which blocks need to be restored. This helps to speed up the restore process and minimize downtime.

In addition to BCT, the Veeam plugin for Oracle supports other advanced features such as Veeam Explorers for Oracle, which allows for granular item-level recovery of Oracle databases.

Overall, the integration of BCT with Veeam Backup & Replication provides a powerful backup and recovery solution for Oracle databases. It allows for faster and more efficient backups, which can help to minimize the impact of backup operations on production systems, as well as faster recovery times in the event of a failure.

 

How to Enable the BCT on Oracle Database:

 

Enabling Oracle Block Change Tracking (BCT) requires setting a few initialization parameters in the Oracle database. Here are the steps to enable BCT in Oracle:

  1. Connect to the Oracle database as a privileged user (such as SYSDBA).
  2. Set the DB_CREATE_FILE_DEST parameter to the location where the database files will be stored. For example: ALTER SYSTEM SET DB_CREATE_FILE_DEST=’/u01/app/oracle/oradata’;
  3. Set the DB_CREATE_ONLINE_LOG_DEST_n parameter to the location where the online redo logs will be stored. For example: ALTER SYSTEM SET DB_CREATE_ONLINE_LOG_DEST_1=’/u01/app/oracle/redo01′ scope=spfile;
  4. Enable ARCHIVELOG mode: For example: ALTER DATABASE ARCHIVELOG;
  5. Set the DB_RECOVERY_FILE_DEST parameter to the location where the Fast Recovery Area will be stored. For example: ALTER SYSTEM SET DB_RECOVERY_FILE_DEST=’/u01/app/oracle/fast_recovery_area’ scope=spfile;
  6. Set the DB_RECOVERY_FILE_DEST_SIZE parameter to the size of the Fast Recovery Area. For example: ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=10G scope=spfile;
  7. Set the COMPATIBLE initialization parameter to at least 11.2.0.4: For example: ALTER SYSTEM SET COMPATIBLE=’11.2.0.4′ scope=spfile;
  8. Enable Change Block Tracking: For example: ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;

Note that these are just example commands and your specific commands may vary depends on the Oracle version and environment settings.

Advantages and Limitation of Oracle BCT:

 

Advantages of Oracle BCT:

  1. Faster backups: By tracking only the changed blocks, Oracle BCT can significantly reduce the amount of data that needs to be backed up, resulting in faster backup times and less impact on production systems.
  2. Reduced network bandwidth usage: Incremental backups that use Oracle BCT require less data to be transferred over the network, reducing the amount of bandwidth needed for backup operations.
  3. Improved recovery times: Incremental backups that use Oracle BCT can be used to quickly restore data to a specific point in time, without the need to restore a full backup and then apply incremental backups.
  4. Reduced storage requirements: By backing up only the changed blocks, Oracle BCT can reduce the amount of storage required for backup operations, resulting in lower storage costs.

Limitations of Oracle Block Change Tracking for Oracle Database 12c and higher versions:

  1. Compatibility: Block Change Tracking is only available for Oracle Enterprise Edition. Those using Oracle Standard Edition or other database platforms cannot use this feature.

  2. Performance overhead: Enabling BCT introduces some performance overhead, as the database must track and record the changed blocks. The impact on performance is generally minimal, but it can be noticeable in certain workloads, especially in write-intensive environments.

  3. No support for read-only tablespaces: BCT cannot track changes in read-only tablespaces. Incremental backups of these tablespaces will always perform a full scan, which can affect backup performance.

  4. No support for encrypted tablespaces: If you're using Transparent Data Encryption (TDE) with encrypted tablespaces, BCT cannot be used for those tablespaces, and you must rely on conventional incremental backups.

  5. Single change tracking file: Oracle allows only one change tracking file per database. If the file is lost or corrupted, you must disable and re-enable BCT to create a new one, which can impact backup performance until the change tracking file is fully populated again.

  6. Space requirement: The change tracking file requires disk space, and its size grows as the number of changes increases. Proper storage management and monitoring are necessary to prevent the file from consuming too much space.

  7. Oracle Block Change Tracking (BCT) is supported in Oracle Real Application Clusters (RAC) environments, but there are some limitations and considerations to keep in mind when using BCT with RAC:

  •  Global change tracking file: In an Oracle RAC environment, there is a single global change tracking file shared by all instances. This file must be stored in a location accessible by all nodes in the RAC, such as an Oracle Automatic Storage Management (ASM) disk group or a shared file system.

  • Instance-specific initialization parameter: The initialization parameter DB_BLOCK_CHANGE_TRACKING must be set consistently across all instances in the RAC. If you enable or disable BCT, you need to ensure that the changes are applied to all instances' parameter files (SPFILE or PFILE).

  • Performance impact: While the performance overhead of BCT is generally minimal, using it in a RAC environment may increase the overhead due to inter-node communication and coordination, especially in write-intensive workloads.

  • Backup coordination: When using RMAN to perform incremental backups in a RAC environment, it is essential to coordinate the backups across all instances. This ensures that BCT information is used consistently and provides accurate backup results.

  • Potential single point of failure: The global change tracking file represents a single point of failure in a RAC environment. If the file becomes corrupted or unavailable, BCT will be disabled for all instances, impacting incremental backup performance. Proper monitoring and management of the change tracking file are crucial in a RAC setup.

Oracle BCT can be a useful feature for Oracle database backups, but it is important to carefully consider its limitations.

Nice, clear explanation for sysadmins and backup admins that aren’t familiar with Oracle RMAN and database backup technology. I recommend this!


@BertrandFR : thanks for the comments. I assume that the updated version of the blog should be fine now.

I talked to Petr (the product manager you mention from Prague) whether we want to add a checkbox to enable CBT directly in the job options. That was the main point from my side when starting the conversation with Ali (who then wrote the blog post - thanks for  that!)


Nice, clear explanation for sysadmins and backup admins that aren’t familiar with Oracle RMAN and database backup technology. I recommend this!

Thank you Randy.


It's always a pleasure to engage with the community and learn from the collective knowledge and experience of its members. Your input, along with the Oracle support documentation you provided.

Your enthusiasm to test the new features in v12 is quite encouraging. It's fantastic to know that professionals like you are keen on exploring the latest developments and how they can improve existing systems. Please do keep us updated on your experiences and findings after testing v12 with Oracle, especially regarding the RMAN backup scheduler improvements. Your feedback will be beneficial for the community as we all strive to keep up with the rapidly evolving technology landscape.

Again, thank you for your valuable input, and we look forward to hearing your insights after testing Veeam v12 with Oracle.


I have never touched Oracle but this is a great outline.  Thanks for sharing.


Thanks for sharing, this article allowed me to discuss it with my colleague db expert. We didn’t know Veeam can use RMAN CBT even we’re using it in production since several years.

You’re using a very old Oracle version, i think some limitations need to be fix.

Not supported for Oracle Real Application Clusters (RAC) databases. => wrong

May not work properly if the Oracle database is using certain advanced features, such as Oracle SecureFiles ( => need to be check) or Oracle Automatic Storage Management (ASM) (=> wrong).

Not supported for some Oracle database configurations, such as databases that use block change tracking (=> ???)  or flashback database (=> wrong).

@HannesK I met the Product Analyst DB during the summit, i don’t remember his name just he speak French 😅. Maybe he could give a better statement about this subject?

Hello Bertand,

Thank you for your input and for discussing the article with your colleague. It's always great to have feedback from experienced professionals like you who have been using the technology in a production environment.

I am checking the latest versions of Oracle if something got changed, in the meantime do you have any reference for your information?


Hello @vmali , it’s always a pleasure to share some feeback and discuss about it with the community. 

From Oracle support documentation:RMAN Fast Incremental Backups using BCT = Block Change Tracking file (Doc ID 262853.1)

Some answers were from my colleague knowledge too and from proven example from running production infrastructure. If you have some disagreement, i will be glad to read it  and maybe give you more details:)

BTW we’re excited to test new features in v12 with Oracle and get out of outside scheduler for RMAN backup. We will patiently wait CP1 and test it.


Thanks for sharing, this article allowed me to discuss it with my colleague db expert. We didn’t know Veeam can use RMAN CBT even we’re using it in production since several years.

You’re using a very old Oracle version, i think some limitations need to be fix.

Not supported for Oracle Real Application Clusters (RAC) databases. => wrong

May not work properly if the Oracle database is using certain advanced features, such as Oracle SecureFiles ( => need to be check) or Oracle Automatic Storage Management (ASM) (=> wrong).

Not supported for some Oracle database configurations, such as databases that use block change tracking (=> ???)  or flashback database (=> wrong).

@HannesK I met the Product Analyst DB during the summit, i don’t remember his name just he speak French 😅. Maybe he could give a better statement about this subject?


Comment