Step by Step Upgrade Oracle Database 19c to 23ai Using AutoUpgrade
Oracle Database 23ai is the latest long-term support release packed with groundbreaking features like AI Vector Search, JSON Relational Duality, True Cache, Schema Privileges, and hundreds of developer productivity enhancements. If you're running Oracle Database 19c (and most of you are), now is the time to plan your upgrade.
Oracle E-Business Suite 12.2 was officially certified with Database 23ai in February 2026, starting with on-premises Exadata systems running Exadata Software 24.1 or later. The direct upgrade path exists only from 19c and 21c to 23ai — and the AutoUpgrade utility is now the only supported method. The old Database Upgrade Assistant (DBUA) has been desupported for 23ai upgrades.
In this post, I'll walk you through the complete upgrade process from Oracle Database 19c to 23ai using AutoUpgrade — covering planning, prerequisites, step-by-step execution, post-upgrade validation, and troubleshooting.
What is Oracle Database 23ai?
Oracle Database 23ai (the "ai" stands for Artificial Intelligence) is the successor to Oracle Database 19c and introduces over 300 new features focused on:
- AI Vector Search — native vector data type and similarity search for generative AI and RAG (Retrieval-Augmented Generation) applications
- JSON Relational Duality — use the same data as relational tables or JSON documents interchangeably
- Schema-level Privileges — grant privileges on all objects in a schema with one command
- True Cache — a consistent, read-only cache for your database
- Developer Productivity — SQL domain types, direct joins to external tables, boolean data type, annotations, and more
Oracle Database 23ai Release Update 23.5 is the first production-ready version for on-premises deployments.
Why Upgrade from 19c to 23ai?
1) 19c Error Correction Support is ending
Oracle Database 19c entered Extended Support in April 2024. While it remains supported until 2027, you won't get error correction support for much longer if you're still on older RUs.
2) AI and Modern App Development
If you're building modern apps with AI, machine learning, or working with JSON-heavy workloads, 23ai is a must. The native vector search capability alone is game-changing.
3) EBS 12.2 Certification
If you run Oracle E-Business Suite 12.2, Oracle has certified it with 23ai on Exadata (and other platforms are coming). This opens the door to leverage AI features in your ERP environment.
4) Direct Upgrade Path
23ai only allows direct upgrades from 19c and 21c. If you're on 12c or 11g, you must first upgrade to 19c, then to 23ai. Don't delay.
What is AutoUpgrade?
AutoUpgrade is Oracle's recommended and only supported upgrade utility for Oracle Database 23ai. It automates the entire upgrade workflow:
- Pre-upgrade analysis — identifies fixable issues and blockers
- Automated fixups — applies fixes before upgrade
- Upgrade execution — runs
catupgrd.sqland all necessary scripts - Post-upgrade tasks — recompiles invalid objects, gathers dictionary stats, runs utlrp
- Guaranteed Restore Point (GRP) support — enables flashback if something goes wrong
- Multitenant support — upgrades CDBs and PDBs, or migrates non-CDB to PDB
AutoUpgrade runs in four modes: Analyze, Fixup, Deploy, and Upgrade. You can run all modes in sequence or separately.
The Database Upgrade Assistant (DBUA) that was used for 11g, 12c, and 19c upgrades is desupported for 23ai.
Planning Your Upgrade — Checklist
Before you touch any database, complete this planning checklist:
1.1 Verify Current Environment
Check your current Oracle Database version:
SQL> SELECT banner FROM v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Check if it's a non-CDB or CDB:
SQL> SELECT name, cdb, con_id FROM v$database;
NAME CDB CON_ID
--------- --- ----------
PRODDB NO 0
Important: 23ai requires the multitenant architecture (CDB/PDB). If you have a non-CDB, AutoUpgrade can upgrade and convert it to a PDB in a single operation.
1.2 Review MOS Notes
- MOS Note 2485457.1 — Download AutoUpgrade (latest version)
- MOS Note 742060.1 — Release Schedule of Current Database Releases
- MOS Note 2880697.1 — Database Upgrade Path Reference List (19c to 23ai)
- MOS Note 2118136.2 — Oracle Database 23ai Known Issues
1.3 Check Certified Platforms
As of February 2026, Oracle Database 23ai is certified on:
- Linux x86-64 (Oracle Linux 7, 8, 9 / RHEL 7, 8, 9)
- Oracle Exadata Database Machine (Exadata Software 24.1 or later)
- Oracle Cloud Infrastructure (OCI) — Base Database Service, Exadata Database Service
Other platforms (Solaris, AIX, Windows) are pending certification. Check MOS Note 742060.1 for the latest.
1.4 Backup Strategy
Mandatory backups before upgrade:
- Full RMAN backup of your 19c database
- Export of critical schemas using Data Pump
- Backup of configuration files:
spfile,tnsnames.ora,listener.ora, password file - Optional: Enable Guaranteed Restore Point (GRP) for instant flashback
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
RMAN> BACKUP SPFILE;
RMAN> LIST BACKUP SUMMARY;
1.5 Downtime Estimation
For a 500 GB production database on decent hardware:
- Analyze mode: 10–20 minutes
- Fixup mode: 5–15 minutes
- Upgrade (Deploy mode): 1.5–3 hours (depends on object count, parallelism, and I/O speed)
- Post-upgrade tasks: 30–60 minutes
Total downtime: 2.5–4.5 hours for a typical mid-size database.
Use parallelism (target_pdb_copy_option=8 in config) to reduce upgrade time.
1.6 Rollback Plan
AutoUpgrade supports Guaranteed Restore Point (GRP) for instant flashback if the upgrade fails:
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> FLASHBACK DATABASE TO RESTORE POINT BEFORE_UPGRADE;
SQL> ALTER DATABASE OPEN RESETLOGS;
Alternatively, restore from RMAN backup.
Prerequisites — What You Need Before Starting
Step 1: Download Oracle Database 23ai Software
Download Oracle Database 23ai from:
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
For production, download Oracle Database 23ai Release Update 23.5 or later.
Extract the software:
mkdir -p /u01/app/oracle/product/23.0.0/dbhome_1
cd /u01/app/oracle/product/23.0.0/dbhome_1
unzip -q /stage/LINUX.X64_23ai_db_home.zip
Step 2: Download Latest AutoUpgrade Utility
AutoUpgrade is not part of the 23ai installation. Download it separately from MOS Note 2485457.1 or oracle.com:
cd /home/oracle
wget https://updates.oracle.com/Orion/Services/download/p2485457_<platform>_<version>.zip
unzip autoupgrade.jar.zip
Verify AutoUpgrade version:
java -jar autoupgrade.jar -version
Always use the latest AutoUpgrade version (as of 2026, version 25.x is current).
Step 3: Install Oracle Database 23ai Software (Software-Only)
Run the installer in software-only mode (do NOT create a database):
cd /u01/app/oracle/product/23.0.0/dbhome_1
./runInstaller -silent \
-responseFile /u01/app/oracle/product/23.0.0/dbhome_1/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1 \
ORACLE_BASE=/u01/app/oracle \
oracle.install.db.InstallEdition=EE
Run root scripts:
sudo /u01/app/oraInventory/orainstRoot.sh
sudo /u01/app/oracle/product/23.0.0/dbhome_1/root.sh
Step 4: Apply Latest 23ai Release Update (Optional but Recommended)
Download the latest 23ai Release Update (RU) from MOS and apply it using OPatch:
export ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
cd /stage/35643107
$ORACLE_HOME/OPatch/opatch apply
Verify patch:
$ORACLE_HOME/OPatch/opatch lspatches
Step 5: Set Environment Variables
Set your environment to point to the 19c ORACLE_HOME (source):
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=PRODDB
Step 1: Create AutoUpgrade Configuration File
AutoUpgrade uses a configuration file that defines source and target homes, database details, and upgrade options.
Create a config file /home/oracle/autoupgrade_config.cfg:
#
# AutoUpgrade Configuration File for 19c to 23ai Upgrade
#
global.autoupg_log_dir=/home/oracle/autoupgrade_logs
upg1.dbname=PRODDB
upg1.start_time=NOW
upg1.source_home=/u01/app/oracle/product/19.0.0/dbhome_1
upg1.target_home=/u01/app/oracle/product/23.0.0/dbhome_1
upg1.sid=PRODDB
upg1.log_dir=/home/oracle/autoupgrade_logs
upg1.upgrade_node=prodserver
upg1.target_version=23.5
upg1.restoration=no
upg1.timezone_upg=yes
upg1.run_utlrp=yes
upg1.target_pdb_copy_option=8
Key Parameters Explained:
| Parameter | Description |
|---|---|
global.autoupg_log_dir | Directory for AutoUpgrade logs |
upg1.dbname | Database name (from v$database) |
upg1.source_home | Current 19c ORACLE_HOME |
upg1.target_home | New 23ai ORACLE_HOME |
upg1.sid | Oracle SID |
upg1.target_version | Target DB version (23.5 = 23ai RU 23.5) |
upg1.restoration | Enable GRP for flashback (yes or no) |
upg1.timezone_upg | Upgrade timezone file (yes recommended) |
upg1.run_utlrp | Recompile invalid objects post-upgrade |
upg1.target_pdb_copy_option | Parallelism (use 4–8 for faster upgrade) |
For non-CDB to PDB conversion, add:
upg1.target_cdb=CDB23AI
upg1.target_pdb_name=PRODPDB
upg1.target_pdb_copy_option=8
Step 2: Run AutoUpgrade in Analyze Mode
Analyze mode scans your 19c database and reports upgrade readiness, fixable issues, and blockers.
Run AutoUpgrade:
java -jar autoupgrade.jar -config /home/oracle/autoupgrade_config.cfg -mode analyze
Expected Output:
Autoupgrade tool launched with default options
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 databases will be analyzed
Type 'help' to list console commands
upg> Job 100 for PRODDB completed
------------------- Final Summary --------------------
Number of databases [ 1 ]
Jobs finished successfully [1]
Jobs failed [0]
Jobs pending [0]
Please check the summary report at:
/home/oracle/autoupgrade_logs/cfgtoollogs/upgrade/auto/status/status.html
/home/oracle/autoupgrade_logs/PRODDB/100/autoupgrade_20261014_user.log
upg>
Review the HTML report:
firefox /home/oracle/autoupgrade_logs/cfgtoollogs/upgrade/auto/status/status.html
Common Issues Flagged:
| Issue | Severity | Auto-Fixable? |
|---|---|---|
Deprecated parameters (optimizer_mode=RULE) | WARNING | Yes |
| Invalid objects in SYS/SYSTEM | WARNING | Yes (via utlrp) |
| Timezone file outdated | WARNING | Yes (if timezone_upg=yes) |
Underscore parameters (_optimizer_...) | INFO | No (review manually) |
| SQL Plan Baselines | INFO | No action needed |
| Pluggable databases compatibility | ERROR | No (manual fix required) |
If any ERROR appears, you must fix it manually before proceeding.
Step 3: Run AutoUpgrade in Fixup Mode (Optional)
Fixup mode applies automatic fixes for issues flagged in Analyze mode.
java -jar autoupgrade.jar -config /home/oracle/autoupgrade_config.cfg -mode fixups
AutoUpgrade will:
- Remove deprecated parameters from
spfile - Update timezone file
- Set recommended parameters for 23ai
- Gather dictionary statistics
Expected Output:
Fixup mode finished successfully for PRODDB
Check fixup log: /home/oracle/autoupgrade_logs/PRODDB/101/autoupgrade_fixup.log
Step 4: Enable Guaranteed Restore Point (GRP) — Optional but Recommended
If you want instant rollback capability, enable a Guaranteed Restore Point before upgrade:
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;
SQL> CREATE RESTORE POINT BEFORE_UPGRADE GUARANTEE FLASHBACK DATABASE;
SQL> SELECT name, scn, time, guarantee_flashback_database
FROM v$restore_point;
NAME SCN TIME GUARANTEE_FLASHBACK_DATABASE
----------------- ------------------ ------------------- ----------------------------
BEFORE_UPGRADE 3894756123 14-OCT-26 10:30:15 YES
Warning: GRP requires sufficient space in the Fast Recovery Area (FRA) to store flashback logs. Monitor space during upgrade.
Step 5: Run AutoUpgrade in Deploy Mode (Full Upgrade)
Deploy mode executes the complete upgrade: fixups, upgrade scripts (catupgrd.sql), timezone upgrade, recompilation, and post-upgrade checks.
Set environment to 19c home:
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=PRODDB
Run AutoUpgrade:
java -jar autoupgrade.jar -config /home/oracle/autoupgrade_config.cfg -mode deploy
What Happens During Deploy:
- Pre-upgrade Fixups — applies all automatic fixes
- Shutdown 19c database
- Startup database from 23ai home in UPGRADE mode
- Run catupgrd.sql — the main upgrade script (this takes the longest)
- Timezone upgrade (if enabled)
- Run utlrp.sql — recompile invalid objects
- Gather dictionary stats
- Post-upgrade validation
- Restart database in NORMAL mode from 23ai home
Expected Output:
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
Autoupgrade tool launched with default options
Processing config file ...
1 database(s) will be upgraded
Type 'help' to list console commands
upg> lsj
+----+-------+---------+---------+-------+----------+-------+
| Job|DB_NAME| STAGE |OPERATION| STATUS|START_TIME|UPDATED|
+----+-------+---------+---------+-------+----------+-------+
| 102| PRODDB|PREFIXUPS|EXECUTING|RUNNING| 26/10/14 |1m ago |
+----+-------+---------+---------+-------+----------+-------+
upg> lsj
+----+-------+---------+---------+-------+----------+-------+
| Job|DB_NAME| STAGE |OPERATION| STATUS|START_TIME|UPDATED|
+----+-------+---------+---------+-------+----------+-------+
| 102| PRODDB|DBUPGRADE|EXECUTING|RUNNING| 26/10/14 |15m ago|
+----+-------+---------+---------+-------+----------+-------+
upg> lsj
+----+-------+---------+---------+-------+----------+-------+
| Job|DB_NAME| STAGE |OPERATION| STATUS|START_TIME|UPDATED|
+----+-------+---------+---------+-------+----------+-------+
| 102| PRODDB|POSTUPGRADE|EXECUTING|RUNNING| 26/10/14|2m ago|
+----+-------+---------+---------+-------+----------+-------+
upg> lsj
+----+-------+---------+---------+-------+----------+-------+
| Job|DB_NAME| STAGE |OPERATION| STATUS|START_TIME|UPDATED|
+----+-------+---------+---------+-------+----------+-------+
| 102| PRODDB|COMPLETED|STOPPED |SUCCESS| 26/10/14 |1m ago |
+----+-------+---------+---------+-------+----------+-------+
Job 102 completed
Upgrade Summary Report located at:
/home/oracle/autoupgrade_logs/cfgtoollogs/upgrade/auto/status/status.html
Upgrade typically takes 1.5–3 hours depending on database size, object count, and hardware.
Step 6: Post-Upgrade Validation and Verification
Once AutoUpgrade completes successfully, verify the upgrade.
6.1 Check Database Version
SQL> SELECT banner FROM v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - Production
SQL> SELECT version, version_full FROM v$instance;
VERSION VERSION_FULL
---------- ------------------------------
23.0.0.0.0 23.5.0.24.07
6.2 Check Database Status
SQL> SELECT name, open_mode, cdb, version FROM v$database;
NAME OPEN_MODE CDB VERSION
--------- ---------- --- --------------
PRODDB READ WRITE YES 23.0.0.0.0
6.3 Check for Invalid Objects
SQL> SELECT owner, object_type, COUNT(*)
FROM dba_objects
WHERE status = 'INVALID'
GROUP BY owner, object_type
ORDER BY 1, 2;
If any invalid objects exist, recompile them:
SQL> @?/rdbms/admin/utlrp.sql
6.4 Verify Registry Components
SQL> SELECT comp_name, version, status
FROM dba_registry
ORDER BY comp_name;
COMP_NAME VERSION STATUS
---------------------------------------- ---------- -----------
Oracle Database Catalog Views 23.0.0.0.0 VALID
Oracle Database Packages and Types 23.0.0.0.0 VALID
Oracle JVM 23.0.0.0.0 VALID
Oracle Real Application Clusters 23.0.0.0.0 VALID
Oracle Text 23.0.0.0.0 VALID
Oracle Workspace Manager 23.0.0.0.0 VALID
Oracle XML Database 23.0.0.0.0 VALID
All components should show VALID status.
6.5 Check Timezone Version
SQL> SELECT * FROM v$timezone_file;
FILENAME VERSION CON_ID
----------------------- -------- -------
timezlrg_46.dat 46 0
Oracle 23ai ships with timezone version 46 (or later).
6.6 Verify Upgraded Features
Test new 23ai features to confirm they work:
Test Boolean Data Type:
SQL> CREATE TABLE test_23ai (id NUMBER, is_active BOOLEAN);
Table created.
SQL> INSERT INTO test_23ai VALUES (1, TRUE);
1 row created.
SQL> SELECT * FROM test_23ai;
ID IS_ACTIVE
---------- ----------
1 TRUE
Test Schema Privileges (New in 23ai):
SQL> CREATE USER testuser IDENTIFIED BY Oracle123;
SQL> GRANT CREATE SESSION TO testuser;
SQL> GRANT SELECT ANY TABLE ON SCHEMA hr TO testuser;
-- testuser can now SELECT from all HR schema tables
6.7 Review AutoUpgrade Summary Report
Open the HTML summary report:
firefox /home/oracle/autoupgrade_logs/cfgtoollogs/upgrade/auto/status/status.html
Check:
- Upgrade duration
- Number of errors/warnings
- Final status (SUCCESS)
Step 7: Update Environment and Listener
7.1 Update oratab
Edit /etc/oratab to point to the new 23ai home:
Before:
PRODDB:/u01/app/oracle/product/19.0.0/dbhome_1:N
After:
PRODDB:/u01/app/oracle/product/23.0.0/dbhome_1:N
7.2 Update Listener
Stop the listener running from 19c home:
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
lsnrctl stop
Start the listener from 23ai home:
export ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
lsnrctl start
Verify listener status:
lsnrctl status
7.3 Update Profile / .bashrc
Update your .bashrc or .bash_profile:
export ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
Reload:
source ~/.bashrc
Step 8: Gather Database Statistics (Recommended)
After upgrade, gather fresh database statistics for optimal performance:
SQL> EXEC DBMS_STATS.GATHER_DATABASE_STATS(
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO',
degree => 8,
cascade => TRUE
);
This can take 30–60 minutes for a large database. Run it during a maintenance window.
Step 9: Drop Guaranteed Restore Point (If Enabled)
If you created a GRP before upgrade and the upgrade is successful, drop the restore point to free up space in the FRA:
SQL> SELECT name, scn, guarantee_flashback_database
FROM v$restore_point;
SQL> DROP RESTORE POINT BEFORE_UPGRADE;
Restore point dropped.
Warning: Once you drop the GRP, you cannot flashback. Ensure all testing is complete.
Troubleshooting — Common Errors and Fixes
⚠️ Issue 1: AutoUpgrade Fails with ORA-00904: Invalid Column Name
Root Cause: Deprecated or renamed data dictionary views.
Fix:
Check the AutoUpgrade log:
tail -100 /home/oracle/autoupgrade_logs/PRODDB/102/autoupgrade_err.log
Manually run the failing SQL from 23ai home and fix the issue.
⚠️ Issue 2: ORA-39700: Database Must Be Opened with UPGRADE Option
Root Cause: Database was not started in UPGRADE mode during AutoUpgrade execution.
Fix:
AutoUpgrade handles this automatically. If you see this error, restart the database manually in UPGRADE mode:
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP UPGRADE;
Then re-run AutoUpgrade in deploy mode.
⚠️ Issue 3: utlrp.sql Runs Forever (Recompilation Stuck)
Root Cause: High number of invalid objects or insufficient parallelism.
Fix:
Kill the utlrp session and run it manually with higher parallelism:
SQL> @?/rdbms/admin/utlrp.sql
Or run in parallel using PL/SQL:
SQL> EXEC UTL_RECOMP.RECOMP_PARALLEL(8);
⚠️ Issue 4: Timezone Upgrade Fails
Root Cause: Timezone data in SYS.TSTZ$ is inconsistent.
Fix:
Check the AutoUpgrade log for the exact error. You may need to manually upgrade the timezone using DBMS_DST:
SQL> SELECT * FROM v$timezone_file;
SQL> EXEC DBMS_DST.BEGIN_UPGRADE(46);
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP UPGRADE;
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
l_failures PLS_INTEGER;
BEGIN
DBMS_DST.UPGRADE_DATABASE(l_failures);
DBMS_OUTPUT.PUT_LINE('Failures: ' || l_failures);
END;
/
SQL> EXEC DBMS_DST.END_UPGRADE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
Refer to MOS Note 1585343.1 for detailed timezone upgrade steps.
⚠️ Issue 5: AutoUpgrade Hangs at DBUPGRADE Stage
Root Cause: Large database with many objects, slow I/O, or insufficient parallelism.
Fix:
Increase parallelism in the config file:
upg1.target_pdb_copy_option=12
Monitor progress by tailing the catupgrade log:
tail -f /home/oracle/autoupgrade_logs/PRODDB/102/dbupgrade/catupgrd*.log
If it's truly stuck, check for blocking sessions:
SQL> SELECT sid, serial#, username, status, event
FROM v$session
WHERE username IS NOT NULL;
⚠️ Issue 6: Post-Upgrade Application Fails with ORA-00904
Root Cause: Application uses deprecated features or SQL syntax not supported in 23ai.
Fix:
Identify the failing SQL statement and check Oracle 23ai Deprecations in the official documentation:
https://docs.oracle.com/en/database/oracle/oracle-database/23/upgrade.html
Common deprecated features in 23ai:
LONGcolumns (migrate toCLOB)- Oracle Streams (use GoldenGate or Data Guard)
- SQL*Net V1 protocol
Rewrite or patch the application code.
Best Practices — Upgrade Oracle 19c to 23ai
✅ 1. Always Test in Non-Production First
Upgrade a DEV or UAT database first. Verify application compatibility. Then upgrade PROD.
✅ 2. Use the Latest AutoUpgrade Version
Oracle releases AutoUpgrade updates frequently. Always download the latest from MOS Note 2485457.1 before starting.
✅ 3. Enable Guaranteed Restore Point for PROD Upgrades
GRP gives you instant rollback capability. Worth the FRA space cost.
✅ 4. Monitor Disk Space and FRA
Upgrade generates significant redo and flashback logs. Monitor:
SQL> SELECT * FROM v$recovery_file_dest;
✅ 5. Use Parallelism to Speed Up Upgrade
Set target_pdb_copy_option=8 (or higher) in the AutoUpgrade config file.
✅ 6. Review All AutoUpgrade Logs After Completion
Even if the upgrade succeeds, review the logs for warnings about deprecated features, underscore parameters, or unsupported configurations.
✅ 7. Gather Fresh Statistics After Upgrade
Oracle 23ai has a new optimizer. Gather statistics after upgrade for accurate execution plans.
✅ 8. Update Backup Strategy for 23ai
After upgrade, take a fresh RMAN backup and update your backup scripts to use the 23ai home.
RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
✅ 9. Patch to the Latest 23ai RU Immediately
Don't stay on base 23ai. Apply the latest Release Update (RU) right after upgrade for bug fixes and security patches.
✅ 10. Read the 23ai Documentation
Familiarize yourself with new features, deprecated parameters, and new initialization parameters:
https://docs.oracle.com/en/database/oracle/oracle-database/23/upgrade.html
Summary
Upgrading from Oracle Database 19c to 23ai using AutoUpgrade is straightforward if you follow the planning checklist and execute each step carefully. Here's the quick recap:
- Plan — Review MOS notes, take backups, estimate downtime
- Download — Get Oracle 23ai software, latest AutoUpgrade, and latest RU
- Install — Software-only install of 23ai, apply RU
- Analyze — Run AutoUpgrade in analyze mode, fix any blockers
- Fixup — Run AutoUpgrade in fixup mode (optional)
- Upgrade — Run AutoUpgrade in deploy mode
- Validate — Check version, invalid objects, registry, and new features
- Cleanup — Update oratab, listener, and drop GRP
- Optimize — Gather stats, test application, apply latest RU
Oracle Database 23ai brings over 300 new features that will transform how you build modern applications — especially with AI Vector Search, JSON Relational Duality, and True Cache. If you're on 19c, now is the perfect time to upgrade.
Please do like and subscribe to my youtube channel: https://www.youtube.com/@foalabs If you like this post please follow,share and comment
FAQ
Q1: Can I upgrade directly from Oracle 12c to 23ai?
No. Oracle Database 23ai only supports direct upgrades from 19c and 21c. If you're on 12c, you must first upgrade to 19c, then to 23ai.
Q2: Is DBUA supported for Oracle 23ai upgrades?
No. The Database Upgrade Assistant (DBUA) has been desupported for Oracle 23ai upgrades. You must use AutoUpgrade.
Q3: Can I upgrade a non-CDB to 23ai?
Yes, but 23ai requires the multitenant architecture. AutoUpgrade can upgrade your non-CDB and convert it to a PDB in a new CDB in a single operation. Add target_cdb and target_pdb_name to your config file.
Q4: How long does an AutoUpgrade take?
For a typical 500 GB database, expect 2.5–4 hours total. The actual upgrade time depends on the number of objects, I/O speed, and parallelism settings.
Q5: Can I rollback if the AutoUpgrade fails?
Yes, if you enabled a Guaranteed Restore Point (GRP) before upgrade, you can instantly flashback. Otherwise, restore from your RMAN backup. AutoUpgrade does NOT automatically create a GRP — you must do it manually.
Q6: What is the latest Oracle Database 23ai Release Update?
As of October 2026, Release Update 23.9 is the latest. Always apply the latest RU after upgrade. Check MOS Note 742060.1 for the current RU schedule.
Q7: Does Oracle 23ai support my EBS 12.2 environment?
Yes, Oracle E-Business Suite 12.2 is certified with Database 23ai on Exadata Database Machine running Exadata Software 24.1 or later (as of Feb 2026). Other platforms are pending certification. Check the EBS Tech Blog for updates.
Suggested Internal Links (anchor text → URL from existing FOA posts):
"Upgrading an Oracle EBS 12.2.10 Database from 12c to 19c" →
https://www.funoracleapps.com/2022/03/upgrading-oracle-ebs-1224-database.html
(Link from the "Direct Upgrade Path" section)"Step by Step: Provision an Autonomous Database in OCI" →
https://www.funoracleapps.com/2025/05/step-by-step-provision-autonomous.html
(Link from the "AI Vector Search" feature discussion)"Oracle 11g AUD$ Table Maintenance After ORA-01653" →
https://www.funoracleapps.com/2022/oracle-11g-aud-table-maintenance.html
(Link from troubleshooting section discussing dictionary space issues)"How to Find Why CRS/CSSD Rebooted a Server in Oracle RAC" →
https://www.funoracleapps.com/2022/how-to-find-why-crscssd-rebooted.html
(Link from the RAC upgrade considerations in prerequisites)
Suggested Images / Diagrams (descriptions + alt text):
AutoUpgrade Workflow Diagram
Description: Flowchart showing the four AutoUpgrade modes (Analyze → Fixup → Deploy → Upgrade) with decision points
Alt text: "Oracle AutoUpgrade workflow diagram showing analyze, fixup, deploy, and upgrade modes"Before and After Architecture Comparison
Description: Side-by-side comparison of 19c non-CDB vs. 23ai CDB/PDB architecture
Alt text: "Oracle Database 19c non-CDB to 23ai CDB PDB architecture comparison"AutoUpgrade Console Screenshot
Description: Screenshot of AutoUpgrade running in console mode showing job status (lsjcommand output)
Alt text: "Oracle AutoUpgrade console showing upgrade job status for database PRODDB"23ai New Features Infographic
Description: Visual list of top 10 Oracle 23ai features (AI Vector Search, JSON Duality, True Cache, Boolean, Schema Privileges, etc.)
Alt text: "Oracle Database 23ai top new features including AI Vector Search and JSON Relational Duality"

Post a Comment
Post a Comment