This week I performed an Oracle database upgrade from 19.22.0.0.0 to the brand new 23.26.1.0.0 (Oracle AI Database 26ai). The target was a CDB with one PDB (FINDB) running on a Linux 9 server. I decided to use the AutoUpgrade tool (version 26.2) to make the process as smooth and automated as possible. In this blog post, I’ll walk you through the entire procedure, share the commands, outputs, and a few lessons learned.
📌 Environment Overview
- Source database: CDBFIN (19.22.0.0.0) – CDB with PDB$SEED and FINDB
- Target Oracle home: /u01/app/oracle/product/23.26.0/db_2326
- AutoUpgrade JAR: autoupgrade_26.2.jar
- Server: dm0db02.database.com (Oracle Linux 9)
🔧 Step 1 – Installing the Target Oracle Home
First, I created the directory structure and unzipped the Oracle 23ai binaries:
[oracle@dm0db02 ~]$ cd /u01/app/oracle/product/
[oracle@dm0db02 product]$ mkdir -p 23.26.0/db_2326
[oracle@dm0db02 23.26.0]$ cd db_2326/
[oracle@dm0db02 26AI_Grid_Database]$ unzip --q Database26AI.zip -d /u01/app/oracle/product/23.26.0/db_2326
[oracle@dm0db02 db_2326]$ ./runInstaller # GUI installation (screenshots omitted)
After the installation, I executed root.sh as root:
[root@dm0db02 u01]# /u01/app/oracle/product/23.26.0/db_2326/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/23.26.0/db_2326
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
⚙️ Step 2 – Preparing AutoUpgrade
I placed the autoupgrade_26.2.jar in /u01/autoupgrade/ and created a configuration file Aupg.cfg. The most important part: pointing to the correct source and target Oracle homes, and setting the target version to 23 (even though the file says target_version=19 initially – that was a typo I later corrected). Here’s the final working config:
# Global configurations
global.autoupg_log_dir=/u01/autoupgrade/logs
Database SID to upgrade
upg1.dbname=CDBFIN
upg1.start_time=NOW
upg1.source_home=/u01/app/oracle/product/19.0.0/db_1922
upg1.target_home=/u01/app/oracle/product/23.26.0/db_2326
upg1.sid=CDBFIN
upg1.log_dir=/u01/autoupgrade/logs
upg1.upgrade_node=dm0db02.database.com
upg1.run_utlrp=yes
upg1.timezone_upg=yes
upg1.target_version=23 # Important! Must match the new release
text
🔍 Step 3 – Analyze Mode
First I ran the pre-upgrade checks using analyze mode. This step collects information and runs the pre-upgrade script.
[oracle@dm0db02 autoupgrade]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade_26.2.jar -config /u01/autoupgrade/Aupg.cfg -mode analyze
The console showed a job (ID 100) that spent some time "Loading database information", but eventually completed successfully:
[oracle@dm0db02 autoupgrade]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade_26.2.jar -config /u01/autoupgrade/Aupg.cfg -mode analyze
AutoUpgrade 26.2.260205 launched with default internal options
Processing config file ...
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 CDB(s) plus 2 PDB(s) will be analyzed
Type 'help' to list console commands
upg> lsj
+----+-------+---------+---------+-------+----------+-------+-------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED|MESSAGE|
+----+-------+---------+---------+-------+----------+-------+-------+
| 100| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 08:45:37|69s ago| |
+----+-------+---------+---------+-------+----------+-------+-------+
Total jobs 1
upg> tasks
+--+-------------+-------------+
|ID| NAME| Job#|
+--+-------------+-------------+
| 1| main| WAITING|
|74| event_loop| WAITING|
|75| console| RUNNABLE|
|76| queue_reader| WAITING|
|78| cmd-0| WAITING|
|79| StatUpg| WAITING|
|80| event_loop|TIMED_WAITING|
|82|job_manager-0| WAITING|
|84| exec_loop| WAITING|
|85| exec_loop|TIMED_WAITING|
|95|sql-[FFEAC3] | RUNNABLE|
|96|sql-[9EA634] | RUNNABLE|
+--+-------------+-------------+
upg> status
Config
User configuration file [/u01/autoupgrade/Aupg.cfg]
General logs location [/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto]
Mode [ANALYZE]
Jobs Summary
Total databases in configuration file [3]
Total Non-CDB being processed [0]
Total Containers being processed [3]
Jobs finished successfully [0]
Jobs finished/stopped [0]
Jobs in progress [1]
Progress
+---+---------------------------------------------------------+
|Job| Progress|
+---+---------------------------------------------------------+
|100|[||||||||||||||||| ] 33 %|
+---+---------------------------------------------------------+
upg> lsj
+----+-------+---------+---------+-------+----------+-----------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-----------+----------------------------+
| 100| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 08:45:37|!!!306s ago|Loading database information|
+----+-------+---------+---------+-------+----------+-----------+----------------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+------------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+------------+----------------------------+
| 100| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 08:45:37|!!!1397s ago|Loading database information|
+----+-------+---------+---------+-------+----------+------------+----------------------------+
Total jobs 1
upg> -------------------------------------------------
job 100 has not shown progress in last 25 minutes
database [CDBFIN]
Stage [PRECHECKS]
Operation[EXECUTING]
Status [RUNNING]
Info [Loading database information]
[Review log files for further information]
-----------------------------------------------
Logs: /u01/autoupgrade/logs/CDBFIN/100
-----------------------------------------------
upg> lsj
+----+-------+---------+---------+-------+----------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+----------------+
| 100| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 08:45:37| 0s ago|Executing Checks|
+----+-------+---------+---------+-------+----------+-------+----------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+----------------+
| 100| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 08:45:37| 4s ago|Executing Checks|
+----+-------+---------+---------+-------+----------+-------+----------------+
Total jobs 1
upg> Job 100 completed
------------------- Final Summary --------------------
Number of databases [ 1 ]
Jobs finished [1]
Jobs failed [0]
Please check the summary report at:
/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto/status/status.html
/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto/status/status.log
[oracle@dm0db02 autoupgrade]$
[oracle@dm0db02 autoupgrade]$ cat /u01/autoupgrade/logs/cfgtoollogs/upgrade/auto/status/status.log
==========================================
Autoupgrade Summary Report
==========================================
[Date] Thu Feb 12 09:45:00 IST 2026
[Number of Jobs] 1
==========================================
[Job ID] 100
==========================================
[DB Name] CDBFIN
[Version Before Upgrade] 19.22.0.0.0
[Version After Upgrade] 23.26.1.0.0
------------------------------------------
[Stage Name] PRECHECKS
[Status] SUCCESS
[Start Time] 2026-02-12 08:45:37
[Duration] 0:59:22
[Log Directory] /u01/autoupgrade/logs/CDBFIN/100/prechecks
[Detail] /u01/autoupgrade/logs/CDBFIN/100/prechecks/cdbfin_preupgrade.log
Check passed and no manual intervention needed
------------------------------------------
[oracle@dm0db02 autoupgrade]$
The generated pre-upgrade log confirmed that no manual intervention was needed. Good start!
🛠️ Step 4 – Fixups Mode
Next, I executed the fixups phase to let AutoUpgrade automatically resolve any issues that could be fixed before the actual upgrade.
[oracle@dm0db02 autoupgrade]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade_26.2.jar -config /u01/autoupgrade/Aupg.cfg -mode fixups
[oracle@dm0db02 autoupgrade]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade_26.2.jar -config /u01/autoupgrade/Aupg.cfg -mode fixups
AutoUpgrade 26.2.260205 launched with default internal options
Processing config file ...
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 CDB(s) plus 2 PDB(s) will be processed
Type 'help' to list console commands
upg> lsj
+----+-------+---------+---------+-------+----------+-------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+----------------------------+
| 101| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 10:06:51| 9s ago|Loading database information|
+----+-------+---------+---------+-------+----------+-------+----------------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+----------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+----------+----------------------------+
| 101| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 10:06:51|!!240s ago|Loading database information|
+----+-------+---------+---------+-------+----------+----------+----------------------------+
Total jobs 1
upg> status
Config
User configuration file [/u01/autoupgrade/Aupg.cfg]
General logs location [/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto]
Mode [FIXUPS]
Jobs Summary
Total databases in configuration file [3]
Total Non-CDB being processed [0]
Total Containers being processed [3]
Jobs finished successfully [0]
Jobs finished/stopped [0]
Jobs in progress [1]
Progress
+---+---------------------------------------------------------+
|Job| Progress|
+---+---------------------------------------------------------+
|101|[||||||||||||||||||||| ] 40 %|
+---+---------------------------------------------------------+
upg> lsj
+----+-------+---------+---------+-------+----------+-----------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-----------+----------------------------+
| 101| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 10:06:51|!!!373s ago|Loading database information|
+----+-------+---------+---------+-------+----------+-----------+----------------------------+
Total jobs 1
upg> tasks
+---+-------------+-------------+
| ID| NAME| Job#|
+---+-------------+-------------+
| 1| main| WAITING|
| 77| event_loop|TIMED_WAITING|
| 78| console| RUNNABLE|
| 79| queue_reader| WAITING|
| 81| cmd-0| WAITING|
| 82| StatUpg| WAITING|
| 83| event_loop|TIMED_WAITING|
| 85|job_manager-0| WAITING|
| 87| exec_loop| WAITING|
| 88| exec_loop| WAITING|
|224|sql-[1C0022] | RUNNABLE|
+---+-------------+-------------+
upg> lsj
+----+-------+---------+---------+-------+----------+------------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+------------+----------------------------+
| 101| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 10:06:51|!!!1290s ago|Loading database information|
+----+-------+---------+---------+-------+----------+------------+----------------------------+
Total jobs 1
upg> -------------------------------------------------
job 101 has not shown progress in last 25 minutes
database [CDBFIN]
Stage [PRECHECKS]
Operation[EXECUTING]
Status [RUNNING]
Info [Loading database information]
[Review log files for further information]
-----------------------------------------------
Logs: /u01/autoupgrade/logs/CDBFIN/101
-----------------------------------------------
upg> lsj
+----+-------+---------+---------+-------+----------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+----------------+
| 101| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 10:06:51| 1s ago|Executing Checks|
+----+-------+---------+---------+-------+----------+-------+----------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+----------------+
| 101| CDBFIN|PREFIXUPS|EXECUTING|RUNNING| 10:06:51|13s ago|Executing fixups|
+----+-------+---------+---------+-------+----------+-------+----------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+------------+------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+------------+------------------+
| 101| CDBFIN|PREFIXUPS|EXECUTING|RUNNING| 10:06:51|!!!1470s ago|Refreshing DB info|
+----+-------+---------+---------+-------+----------+------------+------------------+
Total jobs 1
upg> -------------------------------------------------
job 101 has not shown progress in last 25 minutes
database [CDBFIN]
Stage [PREFIXUPS]
Operation[EXECUTING]
Status [RUNNING]
Info [Refreshing DB info]
[Review log files for further information]
-----------------------------------------------
Logs: /u01/autoupgrade/logs/CDBFIN/101
-----------------------------------------------
upg> lsj
+----+-------+---------+---------+-------+----------+------------+------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+------------+------------------+
| 101| CDBFIN|PREFIXUPS|EXECUTING|RUNNING| 10:06:51|!!!3036s ago|Refreshing DB info|
+----+-------+---------+---------+-------+----------+------------+------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+-------+-------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+-------------------+
| 101| CDBFIN|PREFIXUPS|EXECUTING|RUNNING| 10:06:51| 0s ago|Re-Executing Checks|
+----+-------+---------+---------+-------+----------+-------+-------------------+
Total jobs 1
upg> Job 101 completed
------------------- Final Summary --------------------
Number of databases [ 1 ]
Jobs finished [1]
Jobs failed [0]
Please check the summary report at:
/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto/status/status.html
/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto/status/status.log
[oracle@dm0db02 autoupgrade]$
[oracle@dm0db02 autoupgrade]$ cat /u01/autoupgrade/logs/cfgtoollogs/upgrade/auto/status/status.log
==========================================
Autoupgrade Summary Report
==========================================
[Date] Thu Feb 12 12:29:31 IST 2026
[Number of Jobs] 1
==========================================
[Job ID] 101
==========================================
[DB Name] CDBFIN
[Version Before Upgrade] 19.22.0.0.0
[Version After Upgrade] 23.26.1.0.0
------------------------------------------
[Stage Name] PRECHECKS
[Status] SUCCESS
[Start Time] 2026-02-12 10:06:51
[Duration] 0:55:07
[Log Directory] /u01/autoupgrade/logs/CDBFIN/101/prechecks
[Detail] /u01/autoupgrade/logs/CDBFIN/101/prechecks/cdbfin_preupgrade.log
Check passed and no manual intervention needed
------------------------------------------
[Stage Name] PREFIXUPS
[Status] SUCCESS
[Start Time] 2026-02-12 11:01:58
[Duration] 1:27:32
[Log Directory] /u01/autoupgrade/logs/CDBFIN/101/prefixups
[Detail] /u01/autoupgrade/logs/CDBFIN/101/prefixups/prefixups.html
------------------------------------------
[oracle@dm0db02 autoupgrade]$
[Stage Name] PRECHECKS [Status] SUCCESS [Duration] 0:55:07
[Stage Name] PREFIXUPS [Status] SUCCESS [Duration] 1:27:32
Again, there were moments where the progress seemed stuck (e.g., "Loading database information" for several minutes), but patience paid off. After about 2.5 hours, both PRECHECKS and PREFIXUPS stages succeeded:
🚀 Step 5 – Deploy Mode (The Actual Upgrade)
Now came the moment of truth: the deploy mode. This would perform the full upgrade, including the CDB root, PDB$SEED, and the FINDB PDB.
[oracle@dm0db02 autoupgrade]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade_26.2.jar -config /u01/autoupgrade/Aupg.cfg -mode deploy
I monitored the progress using lsj and status commands. The upgrade progressed through the stages: GRP, PREUPGRADE, PRECHECKS, PREFIXUPS, DRAIN, DBUPGRADE, POSTCHECKS, POSTFIXUPS, POSTUPGRADE, and finally SYSUPDATES.
The DBUPGRADE stage took the longest – about 6 hours – but I could see the percentage increasing for each container. Here’s a snippet of the live output:
[oracle@dm0db02 autoupgrade]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade_26.2.jar -config /u01/autoupgrade/Aupg.cfg -mode deploy
AutoUpgrade 26.2.260205 launched with default internal options
Processing config file ...
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 CDB(s) plus 2 PDB(s) will be processed
Type 'help' to list console commands
upg>
upg> lsj
+----+-------+-----+---------+-------+----------+-------+-------+
|Job#|DB_NAME|STAGE|OPERATION| STATUS|START_TIME|UPDATED|MESSAGE|
+----+-------+-----+---------+-------+----------+-------+-------+
| 102| CDBFIN| GRP|EXECUTING|RUNNING| 13:03:39|27s ago| |
+----+-------+-----+---------+-------+----------+-------+-------+
Total jobs 1
upg> tasks
+--+-------------+-------------+
|ID| NAME| Job#|
+--+-------------+-------------+
| 1| main| WAITING|
|77| event_loop| WAITING|
|78| console| RUNNABLE|
|79| queue_reader| WAITING|
|81| cmd-0| WAITING|
|82| StatUpg| WAITING|
|83| event_loop|TIMED_WAITING|
|85|job_manager-0| WAITING|
|87| exec_loop| WAITING|
|88| exec_loop| WAITING|
|89|sql-[015845] | RUNNABLE|
|92|sql-[89AFBB] | RUNNABLE|
+--+-------------+-------------+
upg>
upg> status
Config
User configuration file [/u01/autoupgrade/Aupg.cfg]
General logs location [/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto]
Mode [DEPLOY]
Jobs Summary
Total databases in configuration file [3]
Total Non-CDB being processed [0]
Total Containers being processed [3]
Jobs finished successfully [0]
Jobs finished/stopped [0]
Jobs in progress [1]
Progress
+---+---------------------------------------------------------+
|Job| Progress|
+---+---------------------------------------------------------+
|102|[||||| ] 8 %|
+---+---------------------------------------------------------+
upg>
upg> lsj
+----+-------+-----+---------+-------+----------+-------+-------+
|Job#|DB_NAME|STAGE|OPERATION| STATUS|START_TIME|UPDATED|MESSAGE|
+----+-------+-----+---------+-------+----------+-------+-------+
| 102| CDBFIN| GRP|EXECUTING|RUNNING| 13:03:39|14s ago| |
+----+-------+-----+---------+-------+----------+-------+-------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+------------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+------------+----------------------------+
| 102| CDBFIN|PRECHECKS|EXECUTING|RUNNING| 13:03:39|!!!1209s ago|Loading database information|
+----+-------+---------+---------+-------+----------+------------+----------------------------+
Total jobs 1
upg> -------------------------------------------------
job 102 has not shown progress in last 25 minutes
database [CDBFIN]
Stage [PRECHECKS]
Operation[EXECUTING]
Status [RUNNING]
Info [Loading database information]
[Review log files for further information]
-----------------------------------------------
Logs: /u01/autoupgrade/logs/CDBFIN/102
-----------------------------------------------
upg> lsj
+----+-------+---------+---------+-------+----------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+----------------+
| 102| CDBFIN|PREFIXUPS|EXECUTING|RUNNING| 13:03:39|53s ago|Executing fixups|
+----+-------+---------+---------+-------+----------+-------+----------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+------------+------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+------------+------------------+
| 102| CDBFIN|PREFIXUPS|EXECUTING|RUNNING| 13:03:39|!!!1353s ago|Refreshing DB info|
+----+-------+---------+---------+-------+----------+------------+------------------+
Total jobs 1
upg> -------------------------------------------------
job 102 has not shown progress in last 25 minutes
database [CDBFIN]
Stage [PREFIXUPS]
Operation[EXECUTING]
Status [RUNNING]
Info [Refreshing DB info]
[Review log files for further information]
-----------------------------------------------
Logs: /u01/autoupgrade/logs/CDBFIN/102
-----------------------------------------------
upg> lsj
+----+-------+---------+---------+-------+----------+------------+------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+------------+------------------+
| 102| CDBFIN|PREFIXUPS|EXECUTING|RUNNING| 13:03:39|!!!2441s ago|Refreshing DB info|
+----+-------+---------+---------+-------+----------+------------+------------------+
Total jobs 1
upg> lsj
+----+-------+-----+---------+-------+----------+----------+------------------------+
|Job#|DB_NAME|STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+-----+---------+-------+----------+----------+------------------------+
| 102| CDBFIN|DRAIN|EXECUTING|RUNNING| 13:03:39|!!193s ago|Disabling RAC if present|
+----+-------+-----+---------+-------+----------+----------+------------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+--------+-------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED|MESSAGE|
+----+-------+---------+---------+-------+----------+--------+-------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING| 13:03:39|104s ago|Running|
+----+-------+---------+---------+-------+----------+--------+-------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+-------+-------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+-------------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING| 13:03:39|56s ago|0%Upgraded CDB$ROOT|
+----+-------+---------+---------+-------+----------+-------+-------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+-------+--------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+--------------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING| 13:03:39|33s ago|50%Upgraded CDB$ROOT|
+----+-------+---------+---------+-------+----------+-------+--------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+-------+--------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+--------------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING| 13:03:39|38s ago|96%Upgraded CDB$ROOT|
+----+-------+---------+---------+-------+----------+-------+--------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+---------+-------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+---------+-------------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING| 13:03:39|!159s ago|0%Upgraded PDB$SEED|
+----+-------+---------+---------+-------+----------+---------+-------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+---------+-------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+---------+-------------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING| 13:03:39|!132s ago|0%Upgraded PDB$SEED|
+----+-------+---------+---------+-------+----------+---------+-------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+----------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+----------+-------+----------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING| 13:03:39|40s ago|5%Upgraded FINDB|
+----+-------+---------+---------+-------+----------+-------+----------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+------------+-------+--------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+------------+-------+--------------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING|Feb-12 13:03|19s ago|78%Upgraded PDB$SEED|
+----+-------+---------+---------+-------+------------+-------+--------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+------------+-------+-----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+------------+-------+-----------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING|Feb-12 13:03|97s ago|95%Upgraded FINDB|
+----+-------+---------+---------+-------+------------+-------+-----------------+
Total jobs 1
upg>
upg> lsj
+----+-------+---------+---------+-------+------------+--------+-----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+------------+--------+-----------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING|Feb-12 13:03|120s ago|95%Upgraded FINDB|
+----+-------+---------+---------+-------+------------+--------+-----------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+------------+-------+-----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+------------+-------+-----------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING|Feb-12 13:03|30s ago|96%Upgraded FINDB|
+----+-------+---------+---------+-------+------------+-------+-----------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+------------+---------+--------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+------------+---------+--------------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING|Feb-12 13:03|!123s ago|95%Upgraded PDB$SEED|
+----+-------+---------+---------+-------+------------+---------+--------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+------------+-------+--------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+------------+-------+--------------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING|Feb-12 13:03|66s ago|96%Upgraded PDB$SEED|
+----+-------+---------+---------+-------+------------+-------+--------------------+
Total jobs 1
upg> lsj
+----+-------+---------+---------+-------+------------+-------+--------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+---------+---------+-------+------------+-------+--------------------+
| 102| CDBFIN|DBUPGRADE|EXECUTING|RUNNING|Feb-12 13:03|60s ago|96%Upgraded PDB$SEED|
+----+-------+---------+---------+-------+------------+-------+--------------------+
Total jobs 1
upg> status
Config
User configuration file [/u01/autoupgrade/Aupg.cfg]
General logs location [/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto]
Mode [DEPLOY]
Jobs Summary
Total databases in configuration file [3]
Total Non-CDB being processed [0]
Total Containers being processed [3]
Jobs finished successfully [0]
Jobs finished/stopped [0]
Jobs in progress [1]
Progress
+---+---------------------------------------------------------+
|Job| Progress|
+---+---------------------------------------------------------+
|102|[|||||||||||||||||||||||| ] 46 %|
+---+---------------------------------------------------------+
upg> lsj
+----+-------+----------+---------+-------+------------+-------+-------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED|MESSAGE|
+----+-------+----------+---------+-------+------------+-------+-------+
| 102| CDBFIN|POSTCHECKS|EXECUTING|RUNNING|Feb-12 13:03|73s ago| |
+----+-------+----------+---------+-------+------------+-------+-------+
Total jobs 1
upg> lsj
+----+-------+----------+---------+-------+------------+-------+-------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED|MESSAGE|
+----+-------+----------+---------+-------+------------+-------+-------+
| 102| CDBFIN|POSTCHECKS|EXECUTING|RUNNING|Feb-12 13:03|94s ago| |
+----+-------+----------+---------+-------+------------+-------+-------+
Total jobs 1
upg> lsj
+----+-------+----------+---------+-------+------------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+-------+----------------+
| 102| CDBFIN|POSTCHECKS|EXECUTING|RUNNING|Feb-12 13:03| 7s ago|Executing Checks|
+----+-------+----------+---------+-------+------------+-------+----------------+
Total jobs 1
upg> lsj
+----+-------+----------+---------+-------+------------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+-------+----------------+
| 102| CDBFIN|POSTCHECKS|EXECUTING|RUNNING|Feb-12 13:03| 1s ago|Executing Checks|
+----+-------+----------+---------+-------+------------+-------+----------------+
Total jobs 1
upg> lsj
+----+-------+----------+---------+-------+------------+----------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+----------+----------------+
| 102| CDBFIN|POSTFIXUPS|EXECUTING|RUNNING|Feb-12 13:03|!!221s ago|Executing fixups|
+----+-------+----------+---------+-------+------------+----------+----------------+
Total jobs 1
upg> lsj
+----+-------+----------+---------+-------+------------+-----------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+-----------+----------------+
| 102| CDBFIN|POSTFIXUPS|EXECUTING|RUNNING|Feb-12 13:03|!!!462s ago|Executing fixups|
+----+-------+----------+---------+-------+------------+-----------+----------------+
Total jobs 1
upg> lsj
+----+-------+----------+---------+-------+------------+-------+----------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+-------+----------------+
| 102| CDBFIN|POSTFIXUPS|EXECUTING|RUNNING|Feb-12 13:03|94s ago|Executing fixups|
+----+-------+----------+---------+-------+------------+-------+----------------+
Total jobs 1
upg> lsj
+----+-------+----------+---------+-------+------------+----------+------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+----------+------------------+
| 102| CDBFIN|POSTFIXUPS|EXECUTING|RUNNING|Feb-12 13:03|!!236s ago|Refreshing DB info|
+----+-------+----------+---------+-------+------------+----------+------------------+
Total jobs 1
upg> lsj
+----+-------+----------+---------+-------+------------+-----------+------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+-----------+------------------+
| 102| CDBFIN|POSTFIXUPS|EXECUTING|RUNNING|Feb-12 13:03|!!!774s ago|Refreshing DB info|
+----+-------+----------+---------+-------+------------+-----------+------------------+
Total jobs 1
upg> -------------------------------------------------
job 102 has not shown progress in last 25 minutes
database [CDBFIN]
Stage [POSTFIXUPS]
Operation[EXECUTING]
Status [RUNNING]
Info [Refreshing DB info]
[Review log files for further information]
-----------------------------------------------
Logs: /u01/autoupgrade/logs/CDBFIN/102
-----------------------------------------------
upg> lsj -a 120
upg> +----+-------+----------+---------+-------+------------+-------+----------------------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+-------+----------------------------------------+
| 102| CDBFIN|SYSUPDATES|EXECUTING|RUNNING|Feb-12 13:03|42s ago|RAC configurations have finished success|
+----+-------+----------+---------+-------+------------+-------+----------------------------------------+
Total jobs 1
The command lsj is running every 120 seconds. PRESS ENTER TO EXIT
+----+-------+----------+---------+-------+------------+----------+----------------------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+----------+----------------------------------------+
| 102| CDBFIN|SYSUPDATES|EXECUTING|RUNNING|Feb-12 13:03|!!286s ago|RAC configurations have finished success|
+----+-------+----------+---------+-------+------------+----------+----------------------------------------+
Total jobs 1
The command lsj is running every 120 seconds. PRESS ENTER TO EXIT
+----+-------+----------+---------+-------+------------+-------+----------------------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME|UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+-------+----------------------------------------+
| 102| CDBFIN|SYSUPDATES|EXECUTING|RUNNING|Feb-12 13:03|53s ago|RAC configurations have finished success|
+----+-------+----------+---------+-------+------------+-------+----------------------------------------+
Total jobs 1
The command lsj is running every 120 seconds. PRESS ENTER TO EXIT
+----+-------+----------+---------+-------+------------+--------+--------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+----------+---------+-------+------------+--------+--------------+
| 102| CDBFIN|SYSUPDATES|EXECUTING|RUNNING|Feb-12 13:03|108s ago|PDB Validation|
+----+-------+----------+---------+-------+------------+--------+--------------+
Total jobs 1
The command lsj is running every 120 seconds. PRESS ENTER TO EXIT
Job 102 completed
------------------- Final Summary --------------------
Number of databases [ 1 ]
Jobs finished [1]
Jobs failed [0]
Jobs restored [0]
Jobs pending [0]
---- Drop GRP at your convenience once you consider it is no longer needed ----
Drop GRP from CDBFIN: drop restore point AUTOUPGRADE_9212_CDBFIN1922000
Please check the summary report at:
/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto/status/status.html
/u01/autoupgrade/logs/cfgtoollogs/upgrade/auto/status/status.log
[oracle@dm0db02 autoupgrade]$ cat /u01/autoupgrade/logs/cfgtoollogs/upgrade/auto/status/status.log
==========================================
Autoupgrade Summary Report
==========================================
[Date] Fri Feb 13 14:47:40 IST 2026
[Number of Jobs] 1
==========================================
[Job ID] 102
==========================================
[DB Name] CDBFIN
[Version Before Upgrade] 19.22.0.0.0
[Version After Upgrade] 23.26.1.0.0
------------------------------------------
[Stage Name] GRP
[Status] SUCCESS
[Start Time] 2026-02-12 13:03:39
[Duration] 0:01:06
[Detail] Please drop the following GRPs after Autoupgrade completes:
AUTOUPGRADE_9212_CDBFIN1922000
------------------------------------------
[Stage Name] PREUPGRADE
[Status] SUCCESS
[Start Time] 2026-02-12 13:04:45
[Duration] 0:00:00
[Log Directory] /u01/autoupgrade/logs/CDBFIN/102/preupgrade
------------------------------------------
[Stage Name] PRECHECKS
[Status] SUCCESS
[Start Time] 2026-02-12 13:04:45
[Duration] 1:01:32
[Log Directory] /u01/autoupgrade/logs/CDBFIN/102/prechecks
[Detail] /u01/autoupgrade/logs/CDBFIN/102/prechecks/cdbfin_preupgrade.log
Check passed and no manual intervention needed
------------------------------------------
[Stage Name] PREFIXUPS
[Status] SUCCESS
[Start Time] 2026-02-12 14:06:18
[Duration] 1:22:06
[Log Directory] /u01/autoupgrade/logs/CDBFIN/102/prefixups
[Detail] /u01/autoupgrade/logs/CDBFIN/102/prefixups/prefixups.html
------------------------------------------
[Stage Name] DRAIN
[Status] SUCCESS
[Start Time] 2026-02-12 15:28:24
[Duration] 0:11:24
[Log Directory] /u01/autoupgrade/logs/CDBFIN/102/drain
------------------------------------------
[Stage Name] DBUPGRADE
[Status] SUCCESS
[Start Time] 2026-02-12 15:39:49
[Duration] 06:12:00
[Log Directory] /u01/autoupgrade/logs/CDBFIN/102/dbupgrade
------------------------------------------
[Stage Name] POSTCHECKS
[Status] SUCCESS
[Start Time] 2026-02-13 12:53:24
[Duration] 0:05:56
[Log Directory] /u01/autoupgrade/logs/CDBFIN/102/postchecks
[Detail] /u01/autoupgrade/logs/CDBFIN/102/postchecks/cdbfin_postupgrade.log
Check passed and no manual intervention needed
------------------------------------------
[Stage Name] POSTFIXUPS
[Status] SUCCESS
[Start Time] 2026-02-13 13:03:01
[Duration] 1:22:58
[Log Directory] /u01/autoupgrade/logs/CDBFIN/102/postfixups
[Detail] /u01/autoupgrade/logs/CDBFIN/102/postfixups/postfixups.html
------------------------------------------
[Stage Name] POSTUPGRADE
[Status] SUCCESS
[Start Time] 2026-02-13 14:25:59
[Duration] 0:00:38
[Log Directory] /u01/autoupgrade/logs/CDBFIN/102/postupgrade
------------------------------------------
[Stage Name] SYSUPDATES
[Status] SUCCESS
[Start Time] 2026-02-13 14:26:38
[Duration] 0:21:01
[Log Directory] /u01/autoupgrade/logs/CDBFIN/102/sysupdates
------------------------------------------
Summary:/u01/autoupgrade/logs/CDBFIN/102/dbupgrade/upg_summary.log
✅ Step 6 – Post-Upgrade Verification
After setting the ORACLE_HOME and PATH to the new 26ai home, I connected to SQL*Plus:
[oracle@dm0db02 autoupgrade]$ . oraenv
ORACLE_SID = [CDBFIN] ?
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@dm0db02 autoupgrade]$ sqlplus / as sysdba
SQL*Plus: Release 23.26.1.0.0 - Production on Fri Feb 13 14:58:35 2026
Version 23.26.1.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0
SQL> col DB_UPTIME for a35
col DATABASE_ROLE for a20
col DB_VERSION for a20
set lines 200
col LOG_MODE for a20
set pages 9999 lines 300
col OPEN_MODE for a10
col HOST_NAME for a30
select name DB_NAME,HOST_NAME,DATABASE_ROLE,OPEN_MODE,version DB_VERSION,LOGINS,LOG_MODE,to_char(STARTUP_TIME,'DD-MON-YYYY HH24:MI:SS') "DB_UPTIME" from v$database,gv$instance;SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL>
DB_NAME HOST_NAME DATABASE_ROLE OPEN_MODE DB_VERSION LOGINS LOG_MODE DB_UPTIME
--------- ------------------------------ -------------------- ---------- -------------------- ---------- -------------------- -----------------------------------
CDBFIN dm0db02.database.com PRIMARY READ WRITE 23.0.0.0.0 ALLOWED ARCHIVELOG 13-FEB-2026 14:40:23
SQL> col banner_full for a100
SQL> select BANNER_FULL from v$version;
BANNER_FULL
----------------------------------------------------------------------------------------------------
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 FINDB READ WRITE NO
SQL>
SQL> SET LINES 200
COL COMP_NAME FOR A45
COL VERSION FOR A15
COL STATUS FOR A15
SELECT COMP_NAME, VERSION, STATUS
FROM DBA_REGISTRY
ORDER BY COMP_NAME;SQL> SQL> SQL> SQL> SQL> 2 3
COMP_NAME VERSION STATUS
--------------------------------------------- --------------- ---------------
JServer JAVA Virtual Machine 23.0.0.0.0 VALID
OLAP Analytic Workspace 23.0.0.0.0 VALID
Oracle Database Catalog Views 23.0.0.0.0 VALID
Oracle Database Java Packages 23.0.0.0.0 VALID
Oracle Database Packages and Types 23.0.0.0.0 VALID
Oracle Database Vault 23.0.0.0.0 VALID
Oracle Label Security 23.0.0.0.0 VALID
Oracle OLAP API 23.0.0.0.0 VALID
Oracle Real Application Clusters 23.0.0.0.0 OPTION OFF
Oracle Text 23.0.0.0.0 VALID
Oracle Workspace Manager 23.0.0.0.0 VALID
Oracle XDK 23.0.0.0.0 VALID
Oracle XML Database 23.0.0.0.0 VALID
Spatial 23.0.0.0.0 VALID
14 rows selected.
The Upgrade Journey: A Timeline
The deploy phase is where things get interesting. Here's how the upgrade progressed through its various stages:
AutoUpgrade created a Guaranteed Restore Point for rollback protection
Final verification before the actual upgrade begins
Last-minute preparations and fixes
Gracefully stopping database services
The main upgrade process for CDB$ROOT, PDB$SEED, and FINDB
Verifying the upgrade completed successfully
Applying post-upgrade fixes and optimizations
Final configuration updates and PDB validation
Lessons Learned & Best Practices
Based on this experience, here are some recommendations for anyone planning a similar upgrade:
- Always Run Analysis First: The analyze mode is your friend. It catches issues before they become problems during the actual upgrade.
- Plan for the Long Haul: The database upgrade stage took over 21 hours. Make sure you have adequate downtime windows and stakeholder buy-in.
- Monitor Regularly: Use the
lsjcommand frequently to track progress. If something seems stuck, check the logs. - Keep Those Logs: AutoUpgrade generates comprehensive logs. They're invaluable for troubleshooting and documentation.
- Don't Forget the GRP: AutoUpgrade creates a Guaranteed Restore Point. Keep it until you're confident everything is working, then drop it to reclaim space.
- Verify Everything: After upgrade, run through your standard validation checklist. Check all PDBs, test connectivity, and verify application functionality.
🔚 Conclusion
The AutoUpgrade tool made this cross-release upgrade (19c → 26ai) a predictable and manageable process.The actual hands‑on work was minimal. The tool handled fixups, drained sessions, executed the upgrade, and even performed post‑upgrade recompilation. I highly recommend AutoUpgrade for any Oracle version upgrade, especially for CDB environments.
If you have any questions or want to share your own upgrade experience, leave a comment below!
Happy upgrading! 😊

ConversionConversion EmoticonEmoticon