Executive Summary: Modernizing Enterprise Oracle Databases to 23ai
pgrading an enterprise Oracle Database from Oracle Database 19c (Long-Term Support) to Oracle Database 23ai (the flagship Long-Term Support release) represents a major milestone for database administration teams. Oracle 23ai brings native AI Vector Search, JSON-Relational Duality Views, and enhanced SQL Firewall security.
Beginning with Oracle Database 19c and mandatory in 23ai, Oracle has standardized all major database version upgrades around the AutoUpgrade utility (autoupgrade.jar). Legacy upgrade methods such as dbua (Database Upgrade Assistant) or running manual SQL scripts (catupgrd.sql) are deprecated or removed.
This step-by-step runbook provides DBAs with an end-to-end production procedure for executing an Oracle 19c to 23ai upgrade using autoupgrade.jar, complete with pre-upgrade checks, automated fixup jobs, guaranteed fallback snapshot protection, and post-upgrade validation.
🏗️ Architecture & Upgrade Execution Workflow
The AutoUpgrade framework executes upgrades through four distinct processing phases: ANALYZE, FIXUPS, DEPLOY, and REVERT (if fallback is needed).
🔍 Diagnostic Checklist: Pre-Upgrade Prerequisites
Before initiating the AutoUpgrade workflow, DBAs must verify that both the OS platform and source database meet Oracle 23ai deployment prerequisites as documented in Oracle Database Upgrade Guide 23ai.
1. Download Latest AutoUpgrade Binary
# Verify AutoUpgrade version on host
$JAVA_HOME/bin/java -jar autoupgrade.jar -version
2. Audit Invalid Dictionary & Application Objects
Check for pre-existing invalid objects in the 19c source database. All SYS and SYSTEM objects must compile cleanly prior to running AutoUpgrade.
-- Diagnostic: Check Invalid Objects per Schema
SELECT owner, object_type, COUNT(*)
FROM dba_objects
WHERE status = 'INVALID'
GROUP BY owner, object_type
ORDER BY owner, object_type;
🚨 Warning: If
SYSorSYSTEMcontains invalid objects prior to starting the upgrade,autoupgrademay fail during dictionary transformation, leaving the catalog in an inconsistent state. Compile invalid objects beforehand using@?/rdbms/admin/utlrp.sql.
🚀 Step-by-Step 23ai Upgrade Runbook
Step 1: Create the AutoUpgrade Configuration File
Create a centralized configuration text file (e.g., /u01/app/oracle/cfg/autoupgrade_19c_to_23ai.cfg) defining source and target Oracle Homes, log directories, and database SID parameters.
# Global AutoUpgrade Parameters
global.autoupg_log_dir=/u01/app/oracle/cfg/logs
# Database Entry 1: Target Database ORCL
upg1.dbname=ORCL
upg1.start_time=IMMEDIATE
upg1.source_home=/u01/app/oracle/product/19.0.0/dbhome_1
upg1.target_home=/u01/app/oracle/product/23.5.0/dbhome_1
upg1.sid=ORCL
upg1.log_dir=/u01/app/oracle/cfg/logs/ORCL
upg1.target_version=23.5
upg1.run_utlrp=YES
upg1.timezone_upgrade=YES
Step 2: Run AutoUpgrade in ANALYZE Mode
Execute AutoUpgrade in ANALYZE mode to scan the source 19c database for potential upgrade blockers, insufficient tablespace storage, obsolete initialization parameters, or unsupported features.
# Execute Pre-Upgrade Analysis
$ORACLE_HOME_23AI/jdk/bin/java -jar autoupgrade.jar \
-config /u01/app/oracle/cfg/autoupgrade_19c_to_23ai.cfg \
-mode analyze
Review the output report generated at /u01/app/oracle/cfg/logs/ORCL/cfgtoollogs/upgrade/auto/status/status.html (or autoupgrade.log) and resolve any flagged ERROR or WARNING conditions.
Step 3: Create Guaranteed Restore Point (Fallback Protection)
Before executing the upgrade, create a Guaranteed Restore Point (GRP) in the 19c source database. This enables an immediate, 100% clean fallback to 19c using Flashback Database if an irrecoverable failure occurs during upgrade.
-- Step A: Ensure Database is in ARCHIVELOG Mode, Fast Recovery Area (FRA) is Configured, and Flashback is Enabled
SYS@ORCL> SELECT log_mode, flashback_on FROM v$database;
SYS@ORCL> ALTER SYSTEM SET db_recovery_file_dest_size = 100G SCOPE=BOTH;
SYS@ORCL> ALTER SYSTEM SET db_flashback_retention_target = 2880 SCOPE=BOTH;
SYS@ORCL> ALTER DATABASE FLASHBACK ON;
-- Step B: Create Guaranteed Restore Point prior to Upgrade
SYS@ORCL> CREATE RESTORE POINT PRE_23AI_UPGRADE GUARANTEE FLASHBACK DATABASE;
-- Step C: Verify Restore Point Creation
SYS@ORCL> SELECT name, time, storage_size, guarantee_flashback
FROM v$restore_point
WHERE name = 'PRE_23AI_UPGRADE';
Step 4: Execute AutoUpgrade in DEPLOY Mode
Run autoupgrade.jar in DEPLOY mode to perform the complete automated upgrade workflow. AutoUpgrade will shut down the 19c instance, mount under the 23ai Oracle Home, execute dictionary upgrade scripts, run utlrp.sql, update timezones, and open the database in 23ai.
# Execute Production Upgrade
$ORACLE_HOME_23AI/jdk/bin/java -jar autoupgrade.jar \
-config /u01/app/oracle/cfg/autoupgrade_19c_to_23ai.cfg \
-mode deploy
You can monitor upgrade progress in real-time using the interactive AutoUpgrade console:
# AutoUpgrade Console Commands
lsj # List running upgrade jobs
tasks # Display detailed sub-task status
status # Show overall job progress
Step 5: Post-Upgrade Verification & Optimization
Once deploy mode completes successfully (Job 100 completed successfully), connect to the database and verify the new 23ai catalog state:
-- Diagnostic 1: Verify Database Version and Open Status
SELECT name, open_mode, version, version_full FROM v$database, v$instance;
-- Diagnostic 2: Query Registry Component Status
SELECT comp_id, comp_name, version, status FROM dba_registry;
-- Diagnostic 3: Gather Optimizer Statistics for Upgraded Database
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
EXEC DBMS_STATS.GATHER_DATABASE_STATS(options => 'GATHER EMPTY', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, degree => 4);
Step 6: Drop Fallback Restore Point
Once production testing and business validation confirm a healthy 23ai deployment, drop the Guaranteed Restore Point to reclaim Fast Recovery Area (FRA) storage:
SYS@ORCL> DROP RESTORE POINT PRE_23AI_UPGRADE;
📚 Official Documentation & Technical References
Always download the newest autoupgrade.jar from My Oracle Support (MOS Doc ID 2485457.1) and replace the version supplied in $ORACLE_HOME/rdbms/admin/.
-
MOS Doc ID 2485457.1: AutoUpgrade Tool Instructions (Master Note) — My Oracle Support master note for downloading and deploying the latest
autoupgrade.jar. -
Oracle Database Upgrade Guide 23ai: Upgrading Oracle Database to 23ai — Official Oracle documentation for upgrade paths, prerequisites, and AutoUpgrade usage.
-
Oracle Utilities Guide: AutoUpgrade Tool for Oracle Database — Technical reference for autoupgrade.jar parameters and execution modes.
-
Mike Dietrich’s DB Upgrade & Patching Blog: Upgrading to Oracle Database 23ai with AutoUpgrade — Master Product Manager Mike Dietrich’s hands-on runbooks, config templates, and troubleshooting tips.
Need assistance planning or executing complex Oracle 19c to 23ai database upgrades across your enterprise infrastructure? Contact our Oracle Infrastructure Specialists or explore our Enterprise Health Audits.