When upgrading an Oracle Database from 11.2.0.4 to Oracle Database 19c, the Oracle Preupgrade Script may identify Block Change Tracking (BCT) as a post-upgrade action.
In this example, the Oracle Preupgrade Script identified the following issue:
13. post_disable_bct_upg NO Manual fixup recommended.
The database was:
Source Database : DB19
Source Version : 11.2.0.4.0
Target Version : 19.0.0.0.0
The recommended process involves disabling Block Change Tracking before the upgrade, performing the database upgrade, taking a Level 0 backup, and then re-enabling Block Change Tracking before continuing with incremental backups.
Environment
| Item | Details |
|---|---|
| Database | DB19 |
| Source Version | Oracle 11.2.0.4.0 |
| Target Version | Oracle 19c |
| Upgrade Type | Major Database Upgrade |
| BCT Status | Previously enabled |
| Preupgrade Check | post_disable_bct_upg |
| Required Post-Upgrade Backup | Level 0 |
What Is Block Change Tracking?
Block Change Tracking (BCT) is an Oracle Database feature that records which database blocks have changed since a previous backup.
It is primarily useful for incremental RMAN backups.
Without block change tracking, RMAN may need to scan datafiles to determine which blocks have changed.
With BCT enabled, RMAN can use the change tracking information to identify changed blocks more efficiently.
A typical configuration can be checked using:
SELECT status,
filename
FROM v$block_change_tracking;
Example:
STATUS
----------
ENABLED
FILENAME
-----------------------------------------
+DATA/DB19/CHANGE_TRACKING_FILE
Why Does the Oracle Preupgrade Script Mention BCT?
During an Oracle Database upgrade, the Block Change Tracking configuration may require special handling.
The Oracle Preupgrade Script generated the following recommendation:
Enable Block Change Tracking and perform a level 0 backup before resuming
incremental backups for the database.
It also reported:
Block Change Tracking was previously enabled in the lower version Oracle
home.
The important point is that after an upgrade, the existing BCT information should not simply be assumed to be valid for continuing incremental backups.
The Oracle recommendation is to account for the required Level 0 backup before resuming the incremental backup strategy.
Oracle Preupgrade Script Output
The database upgrade analysis was generated by:
Oracle Preupgrade Script
Version: 19.0.0.0.0 Build: 13
The report was generated for:
Source Database: DB19
Source Database Version: 11.2.0.4.0
For Upgrade to Version: 19.0.0.0.0
The relevant section was:
Preupgrade Action Number Preupgrade Check Name
13. post_disable_bct_upg
The result was:
Action Is Remedied: NO
Further DBA Action: Manual fixup recommended.
This means the preupgrade process identified an action that requires DBA attention.
Understanding post_disable_bct_upg
The check name:
post_disable_bct_upg
indicates that Block Change Tracking requires attention as part of the upgrade process.
The Oracle-generated guidance states:
Block Change Tracking was previously enabled in the lower version Oracle home.
If Block Change Tracking was disabled for the database upgrade, then
re-enable it after upgrade.
CAUTION: Before disabling Block Change Tracking, take into account the
time to do a level 0 backup after upgrade.
The key operational consideration is therefore:
Disable BCT
↓
Upgrade Database
↓
Enable BCT
↓
Perform Level 0 Backup
↓
Resume Incremental Backups
The exact timing of enabling BCT and performing the Level 0 backup should follow the upgrade runbook and the Oracle-generated recommendation for the environment.
Step 1: Check Block Change Tracking Before the Upgrade
Before making any changes, verify the current BCT status:
SELECT status,
filename
FROM v$block_change_tracking;
If BCT is enabled, record the output.
For example:
STATUS
----------
ENABLED
FILENAME
-----------------------------------------
+DATA/DB19/CHANGE_TRACKING_FILE
This information is useful for the upgrade documentation and post-upgrade validation.
Step 2: Disable Block Change Tracking
In the provided upgrade procedure, BCT was disabled using:
ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
After executing the command, verify the status:
SELECT status,
filename
FROM v$block_change_tracking;
The expected status should indicate that BCT is disabled.
Why Is the Level 0 Backup Important?
This is the most important part of the Oracle recommendation.
When BCT is disabled or its tracking information is no longer suitable for the post-upgrade incremental backup chain, the database should establish a new baseline for incremental backups.
That baseline is created with an RMAN Level 0 backup.
A Level 0 backup contains the database blocks required to establish a new incremental backup baseline.
The Oracle Preupgrade guidance specifically warns:
Before disabling Block Change Tracking, take into account the time to do
a level 0 backup after upgrade.
Therefore, the DBA should consider the expected duration and storage requirements of the Level 0 backup when planning the upgrade downtime and post-upgrade activities.
Step 3: Perform the Oracle Database Upgrade
After completing the required pre-upgrade activities, proceed with the Oracle Database upgrade.
For this environment:
Oracle 11.2.0.4
↓
Oracle 19c
The upgrade may be performed using the organization’s approved upgrade method, such as DBUA or AutoUpgrade.
The important point for the BCT procedure is that the post-upgrade backup strategy must be planned before resuming incremental backups.
Step 4: Verify the Database After the Upgrade
After the database has been upgraded to Oracle 19c, first verify the database status and version.
For example:
SELECT banner
FROM v$version;
Or:
SELECT version
FROM v$instance;
Confirm that the database is running on the intended Oracle 19c home before proceeding with the backup configuration.
Step 5: Enable Block Change Tracking
If BCT was disabled during the upgrade, re-enable it after the upgrade.
The syntax is:
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
USING FILE '/path/to/change_tracking_file';
For ASM:
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
USING FILE '+DATA';
The actual BCT file location should follow the environment’s existing storage design and backup standards.
After enabling BCT, verify:
SELECT status,
filename
FROM v$block_change_tracking;
Expected result:
STATUS
----------
ENABLED
Step 6: Perform a Level 0 RMAN Backup
After the upgrade, establish a new incremental backup baseline with an RMAN Level 0 backup.
Example:
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
If the organization’s RMAN backup scripts already contain the required channels, compression, archivelog handling, and backup destination, use the approved production backup procedure rather than manually running an incomplete command.
For example:
RUN {
BACKUP AS COMPRESSED BACKUPSET
INCREMENTAL LEVEL 0
DATABASE;
}
The Level 0 backup provides the baseline from which subsequent incremental backups can continue.
Step 7: Resume Incremental Backups
After completing the Level 0 backup successfully, resume the normal incremental backup schedule.
For example:
Upgrade
↓
Level 0 Backup
↓
Incremental Level 1 Backup
↓
Incremental Level 1 Backup
↓
Incremental Level 1 Backup
The exact backup schedule depends on the organization’s RMAN backup strategy.
For example, an environment might use:
Weekly:
Level 0
Daily:
Level 1 Incremental
The important point is that the first incremental backup after the upgrade should be based on the new Level 0 baseline.
Complete BCT Upgrade Workflow
The overall process can be summarized as:
Oracle 11.2.0.4
|
v
Check Block Change Tracking
|
v
BCT Enabled?
|
v
ALTER DATABASE DISABLE
BLOCK CHANGE TRACKING
|
v
Perform Oracle Upgrade
|
v
Oracle 19c
|
v
Verify Database & BCT Status
|
v
Enable Block Change
Tracking
|
v
Perform RMAN Level 0
Backup
|
v
Resume Incremental Backups
Important: Do Not Immediately Resume Incremental Backups
One of the key points in the Oracle Preupgrade recommendation is:
Enable Block Change Tracking and perform a level 0 backup before resuming
incremental backups for the database.
Therefore, the upgrade should not be considered fully complete from a backup perspective simply because the database opens successfully on Oracle 19c.
The DBA should also validate:
- BCT status
- BCT file
- Level 0 backup
- RMAN backup completion
- Backup catalog
- Incremental backup schedule
- Backup retention
- Backup storage capacity
- Restore/recovery readiness
RMAN Backup Validation
After the Level 0 backup completes, validate it using RMAN.
For example:
RMAN> LIST BACKUP SUMMARY;
You can also check:
RMAN> LIST BACKUP OF DATABASE;
The Level 0 backup should be visible in the RMAN repository.
If required, validate the backup:
RMAN> VALIDATE BACKUPSET <backupset_id>;
The exact validation command should be adapted to the backup environment.
Check the BCT Configuration
After enabling BCT:
SELECT status,
filename
FROM v$block_change_tracking;
A successful configuration should show:
STATUS
----------
ENABLED
and the expected BCT file location.
Why This Matters for Production Databases
The BCT and Level 0 backup step is especially important for databases with large backup volumes.
For a large production database, the Level 0 backup can take considerable time and consume significant storage and network bandwidth.
For this reason, Oracle explicitly recommends considering the time required for the Level 0 backup before disabling BCT.
A DBA should therefore determine:
- Database size
- Expected Level 0 backup duration
- Backup destination capacity
- Network bandwidth
- RMAN channel configuration
- Compression settings
- Backup window
- Application SLA
- Recovery requirements
Example Commands
Check BCT
SELECT status,
filename
FROM v$block_change_tracking;
Disable BCT
ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
Enable BCT
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
USING FILE '+DATA';
RMAN Level 0 Backup
BACKUP INCREMENTAL LEVEL 0 DATABASE;
Check RMAN Backups
LIST BACKUP SUMMARY;
Understanding the Preupgrade Report
The Oracle Preupgrade Script reported:
Action Number Check Name Remedied
------------- ---------------------- --------
13. post_disable_bct_upg NO
The report also stated:
Manual fixup recommended.
This does not mean that the entire database upgrade failed.
Instead, it means that this particular preupgrade recommendation still requires DBA attention.
The report also stated:
The fixup scripts have been run and resolved what they can.
However, there are still issues originally identified by the
preupgrade that have not been remedied and are still present
in the database.
Therefore, the DBA should review the corresponding postupgrade_fixups.sql entry and complete the outstanding BCT-related action.
Final Takeaway
When upgrading an Oracle Database from 11.2.0.4 to 19c, Block Change Tracking should be explicitly considered as part of the backup strategy.
For the post_disable_bct_upg recommendation, the important sequence is:
Oracle 11.2.0.4
↓
Check BCT
↓
Disable BCT if required
↓
Upgrade to Oracle 19c
↓
Verify database
↓
Re-enable BCT
↓
Perform Level 0 RMAN Backup
↓
Validate Backup
↓
Resume Incremental Backups
The most important warning from the Oracle Preupgrade Script is to plan for the Level 0 backup before disabling Block Change Tracking. A large production database may require significant time and storage resources to complete this new backup baseline.
Therefore, BCT should not be treated as an isolated upgrade parameter. It should be planned together with the RMAN backup strategy, Level 0 backup duration, incremental backup schedule, storage capacity, and recovery requirements.
For the DB19 upgrade from Oracle 11.2.0.4.0 to Oracle 19c, the Preupgrade Script identified post_disable_bct_upg as a manual action, making BCT and the subsequent Level 0 backup an important part of the upgrade runbook.
Oracle 19c Database Upgrade from 11.2.0.4 to 19c Using DBUA
Oracle 19c Database Upgrade from 11.2.0.4 to 19c Using Manual Method


