Upgrading an Oracle Database is one of
those tasks that every DBA respects—and sometimes fears. With Oracle
introducing Oracle 26ai (AI DATABASE), many teams
running stable Oracle 19c environments are now planning their
upgrade path.
Data Management
In this blog, I’ll walk you
through a real Oracle 19c to Oracle 26ai database upgrade using DBUA
(Database Upgrade Assistant), based on an actual upgrade execution. This
guide is simple, practical, and easy to follow, even if you’re
performing a major version upgrade for the first time.
Why Upgrade from
Oracle 19c to Oracle 26ai?
Oracle 19c is a Long-Term Support
(LTS) release and still widely used. However, Oracle 26ai brings
significant enhancements:
Data Management
§ Built-in AI-driven
optimizations
§ Improved CDB/PDB
architecture
§ Better performance
and memory management
§ Enhanced security
defaults
§ Long-term
roadmap alignment
If your organization is planning
future workloads, analytics, or AI-driven features, Oracle 26ai is the
next logical step.
Why Use DBUA for
the Upgrade?
Oracle provides multiple upgrade
methods:
§ Manual upgrade
scripts
§ AutoUpgrade
§ DBUA (Database
Upgrade Assistant)
For this upgrade, DBUA was chosen because:
§ GUI-driven and
easy to follow
§ Built-in
prerequisite checks
§ Automatic
component upgrades
§ Integrated
rollback options
§ Clear progress
and logging
Note: Oracle has announced
that DBUA is deprecated starting from
Oracle 23c, but it is still available and functional in 26ai for now.
🎯
Objective
This SOP provides a step-by-step
procedure to upgrade an Oracle Database 19c database to Oracle AI Database 26ai
using Oracle Database Upgrade Assistant (DBUA).
This document is based on a
real-world upgrade execution and includes:
- Pre-upgrade preparation
- DBUA upgrade steps
- Validation procedures
- Rollback strategy
- Post-upgrade checks
- Best practices
|
Parameter |
Value |
|
Database Version |
Oracle 19c |
|
Database Type |
CDB with PDB |
|
CDB Name |
test |
|
PDB Name |
ORCLPDB |
📋 Pre-Upgrade Checklist
✅
Verify Database Health
SELECT name, open_mode, database_role FROM v$database;
✅
Verify Invalid Objects
SELECT owner, object_name, object_type
FROM dba_objects
WHERE status='INVALID';
✅
Check Tablespace Usage
SELECT tablespace_name,
used_percent
FROM
dba_tablespace_usage_metrics;
✅
Verify Backup Availability
Ensure:
- RMAN backup completed successfully
- Recovery tested
- Archive logs available
✅
Check COMPATIBLE Parameter
SHOW PARAMETER compatible;
✅
Gather Dictionary Statistics
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
💾 Recommended Recovery Strategy
Use
Guaranteed Restore Point
Highly recommended for rollback
safety.
CREATE RESTORE POINT before_upgrade
GUARANTEE FLASHBACK DATABASE;
Benefits:
- Fast rollback
- Avoid full restore
- Lower downtime risk
Step 1: Selecting
the Source Database
DBUA automatically detects
databases running on the server.
In this case, the Oracle 19c CDB was selected along with SYS
credentials.
export
ORACLE_HOME=/u01/app/oracle/product/23.26.0.0/dbhome_1
export
PATH=$ORACLE_HOME/bin:$PATH
📸 Step 2: Select Source Database
DBUA automatically detects
databases.
Select:
- CDB: test
- SYS credentials
DBUA validates:
- Connectivity
- Metadata
- Upgrade readiness

DBUA connects to the database, validates access, and prepares
metadata for upgrade analysis.
📸 Step 3: Select PDB
DBUA displays available PDBs.
Select:
- ORCLPDB
Verify:
- Status = NORMAL
- Open Mode = READ WRITE

§ ORCLPDB was
selected
§ Status: NORMAL
§ Open Mode: READ
WRITE
This confirms that the PDB is healthy and ready for upgrade.
🔍 Step 4: Run Prerequisite Checks
DBUA automatically performs:
- Parameter validation
- Timezone checks
- Dictionary checks
- Unified auditing checks
Common warnings:
- SPFILE parameter warnings
- Timezone advisory
- Statistics recommendation
⚠️ Important:
Warnings are not always blockers.
Review carefully before proceeding.

Common warnings
seen:
§ Initialization
parameters not recorded in SPFILE
§ Unified
Auditing changes
§ Recommendations
to gather dictionary statistics
§ Timezone data
upgrade advisory
These were warnings,
not blockers
Some were auto-fixable,
others manual

Tip: Always review
warnings carefully. Ignoring them blindly can cause post-upgrade performance
issues.
Step 5: Select Upgrade Options
Enable recommended options:
|
Option |
Recommended |
|
Parallel Upgrade |
✅ |
|
Recompile Invalid Objects |
✅ |
|
Upgrade Timezone Data |
✅ |
Benefits:
- Reduced downtime
- Better post-upgrade stability

🔒 Step 6: Configure Recovery Option
Choose:
✅ Flashback with Guaranteed Restore
Point
Reason:
- Fast rollback
- Safe recovery strategy
- Recommended for production

🌐 Step 7: Network Configuration
DBUA detects existing listener.
Example:
|
Parameter |
Value |
|
Listener |
LISTENER |
|
Port |
1521 |
Usually no changes required.

📊 Step 8: Management Configuration
Optional:
- Enterprise Manager registration
Can be skipped if external
monitoring exists.

📋 Step 9: Review Upgrade Summary
Review carefully:
- Source version
- Target version
- PDB selection
- Upgrade options
- Oracle homes
⚠️ Final verification point before
execution.

🚀 Step 10: Start Upgrade
DBUA performs:
- CDB Root upgrade
- PDB$SEED upgrade
- PDB upgrade
- Component upgrades
Components upgraded:
- Oracle Server
- JVM
- Oracle Text
- Database Vault
- OLAP
- Oracle Multimedia


Final Results:
Upgrade Completed Successfully ![]()
The upgrade finished with zero
errors.

✅ Step 11: Verify Upgrade Completion
Expected final status:
|
Component |
Status |
|
Database |
SUCCESS |
|
PDB |
NORMAL |
|
Upgrade |
Completed |
🧪 Post-Upgrade Validation
✅
Verify Database Version
SELECT * FROM v$version;
✅
Verify PDB Status
SHOW PDBS;
✅
Check Invalid Objects
SELECT owner, object_name
FROM dba_objects
WHERE status='INVALID';
✅
Run utlrp.sql
@?/rdbms/admin/utlrp.sql
✅
Gather Fixed Object Statistics
EXEC
DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
✅
Review Alert Log
tail -100f alert_<SID>.log
🔄 Rollback Procedure
If upgrade fails:
Flashback
Database
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
FLASHBACK DATABASE TO RESTORE POINT before_upgrade;
ALTER DATABASE OPEN RESETLOGS;
⚠️ Common Issues & Fixes
|
Issue |
Solution |
|
Invalid objects |
Run utlrp.sql |
|
Listener issue |
Restart listener |
|
PDB not open |
Open manually |
|
Timezone mismatch |
Run timezone upgrade |
🛡️ Best Practices
✅
Before Upgrade
- Full RMAN backup
- Validate restore
- Check space availability
- Disable unnecessary jobs
✅
During Upgrade
- Monitor alert log
- Avoid application activity
- Monitor CPU/memory
✅
After Upgrade
- Gather statistics
- Test applications
- Validate backups
- Monitor performance
📊 Recommended Monitoring Queries
Check
Upgrade Status
SELECT comp_name, status, version
FROM dba_registry;
Check
PDB Open Modes
SELECT name, open_mode
FROM v$pdbs;
🎯 Key Takeaways
✅ DBUA simplifies major upgrades
✅ Flashback restore points reduce risk
✅ Parallel upgrade minimizes downtime
✅ Prechecks are critical
✅ Always validate post-upgrade health
🏁 Conclusion
Using Oracle Database Upgrade
Assistant for upgrading from Oracle Database 19c to Oracle AI Database 26ai
provides:
- Structured workflow
- Built-in validation
- Reduced operational risk
- Easier rollback handling
Proper planning and validation are
the keys to a successful production upgrade.

No comments:
Post a Comment