This is first from 3 Articles:

  • Database upgrade to AI Database 26ai (23.26.1) for Linux x86-64 upgrade from 19C in 3 steps using gold images.
  • Clusterware / ASM upgrade to 26ai for HAS single instance configuration from 19c.
  • Oracle RAC / ASM / Clusterware updgrade to 26ai from 19c.

Step 1. Downloading and preparation

Download Base Gold image from Oracle support software from latest Oracle AI Database 26ai (23.26.1) for Linux x86-64 (we upgrading on Oracle LInux 9)

https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html

or

If you have access to new support web site, use this document to get always newest updated version (Recommended), there is new update every 3 months.

Oracle AI Database 26ai Proactive Patch Information KB153394

Download latest Goldimage release update, at the time writing this newest ones was Jan 2026. 38743961

https://support.oracle.com/support/?patchId=38743961

Meanwhile downloading you can read documentation 🙂

https://updates.oracle.com/Orion/Services/download?type=readme&aru=28353952

  • In this tutorial we will not use Oracle Fleet Patching and Provisioning (Oracle FPP)
  • we will use traditional runInstaller in silent mode + dbca + autoupgrade
  • Update your linux + download oracle gold image
yum update

yum install oracle-ai-database-preinstall-26ai

reboot 

In my case it was not updates since a while so i have more then 100 rpms to update including kernel so i also rebooted my linux box.

Install    7 Packages

Upgrade  102 Packages

Remove     7 Packages

Total download size: 1.3 G

oracle-ai-database-preinstall-26ai this rpm is installing all dependencies need for oracle 26ai , in case you installed earlier versions there is not much to do , but better have it installed, as future updates may add some dependencies, if you not using Oracle Linux , please check documentation which exactly rpms are needed.

  • Unpack our downloaded database gold image software.
oracle@OL9-dmk-tests:/u02/inst/ [rdbms1900] mkdir -p /u03/app/oracle/product/26.1
oracle@OL9-dmk-tests:/u02/inst/ [rdbms1900] unzip p38743961_230000_Linux-x86-64.zip -d /u03/app/oracle/product/26.1

we unzip new home to /u03/app/oracle/product/26.1 please make sure you have space.

Step 2. Setting up new home

Run runInstaller to setup new home:

$<TARGET_DB_HOME>/runInstaller -silent -setupDBHomeAs /u01/app/oracle/product/19.26

cd /u03/app/oracle/product/26.1
oracle@OL9-dmk-tests:/u03/app/oracle/product/26.1/ [rdbms1900] ./runInstaller -silent -setupDBHomeAs /u01/app/oracle/product/19.26
Launching Oracle AI Database Setup Wizard...

*********************************************
Swap Size: This is a prerequisite condition to test whether sufficient total swap space is available on the system.
Severity: IGNORABLE
Overall status: VERIFICATION_FAILED
Error message: PRVF-7573 : Sufficient swap size is not available on node "ol9-dmk-tests" [Required = 15.0995GB (1.5832984E7KB) ; Found = 2GB (2097148.0KB)]
Cause:  The swap size found does not meet the minimum requirement.
Action:  Increase swap size to at least meet the minimum swap space requirement.
-----------------------------------------------
*********************************************
Current clock source: Verifies the current clock source configuration
Severity: IGNORABLE
Overall status: VERIFICATION_FAILED
Error message: PRVE-10350 : Current clock source is not set to the expected value on node "OL9-dmk-tests" [Expected = "tsc" ; Found = "kvm-clock"].
Cause:  The Configuration Verification Utility (CVU) determined that the
         current clock source was not set to the expected value on
         the indicated node, which would impact the database performance.
Action:  Ensure that the current clock source is set to the expected
         value on the indicated node.
-----------------------------------------------
[WARNING] [INS-13014] Target environment does not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/InstallActions2026-02-04_06-32-10PM/installActions2026-02-04_06-32-10PM.log.
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/InstallActions2026-02-04_06-32-10PM/installActions2026-02-04_06-32-10PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /u03/app/oracle/product/26.1/install/response/db_2026-02-04_06-32-10PM.rsp

You can find the log of this install session at:
 /u01/app/oraInventory/logs/InstallActions2026-02-04_06-32-10PM/installActions2026-02-04_06-32-10PM.log

As a root user, run the following script(s):
	1. /u03/app/oracle/product/26.1/root.sh

Run /u03/app/oracle/product/26.1/root.sh on the following nodes:
[OL9-dmk-tests]


Successfully Setup Software with warning(s).

I got 2 warnings in prechecks, both ignorable , check if in your case there is nothing more serious, then fix it and rerun again. For my box this 2 warnings are not importatnt.

First about swap space this can be ignored as this is virtual host with enough RAM memory,

Second about clock source settings, at this is VM / sandbox and this defaults come from KVM I’m ignoring this also, but if you install oracle on bare metal for high performance its worth to consider changing.

After process finish run as a root
[root@OL9-dmk-tests ~]# /u03/app/oracle/product/26.1/root.sh
Check /u03/app/oracle/product/26.1/install/root_OL9-dmk-tests_2026-02-04_18-38-13-167364432.log

Step 3. Upgrade database 19C to 26.1.

In my case we upgrading from 19.26(multitenant already) directly to our 26.1.

if you upgrading from current release 23 you can run switch homes command:

$ <TARGET_DB_HOME>/bin/dbca -silent -moveDatabase -sourceDB <DB_NAME>

if you try this on 19C , process will fail like below

oracle@OL9-dmk-tests:/u03/app/oracle/product/26.1/bin/ [rdbms2300] ./dbca -silent -moveDatabase -sourceDB DB1926CRSITE
[FATAL] [DBT-13529] The major version '23.0.0.0.0' of target Oracle home does not match the major version '19.0.0.0.0' of source Oracle home.
   CAUSE: The major version of target Oracle home should match major version of source Oracle home.

We have to run autoupgrade process as this is recommended process, we can read in oracle Documentation that:

Some of the scripts Oracle provides cannot be run in UPGRADE mode.

Starting with Oracle AI Database 26ai, the use of manual scripts to upgrade Oracle Database is desupported.

AutoUpgrade and Replay Upgrade are the only supported method for upgrading to Oracle AI Database 26ai.

All other methods, including Database Upgrade Assistant (DBUA), are desupported.

so lets do it with autoupgrade

Autoupgrade is small Java API with internal command line, which is powerful tool for databases upgrades, it can be configure with variety of parameters depends your needs, and then start all processes in background.

As now its Part of Oracle home, you don’t need to install it separately.(you always can if you need some newer features, check metalink for newest version).

so Lets start:

First we need to create configuration file, you can name it as you like, configuration file can have multiple parameters, but for simple upgrade you need only few, example:

oracle@OL9-dmk-tests:/u03/app/oracle/product/26.1/ [rdbms2300] cat upgr26ai.cfg
global.global_log_dir=/home/oracle/autoupgrade/upg26
upg1.source_home=/u01/app/oracle/product/19.26
upg1.target_home=/u03/app/oracle/product/26.1
upg1.sid=DB1926CRSITE
upg1.restoration=no

Next step is only create log folder for global_log_dir parameter and start upgrade process i used restoration=no as my test db is in noarchivelog mode and i don’t need restore points, but on operational system better to have possibility to rollback.

mkdir -p /home/oracle/autoupgrade/upg26
oracle@OL9-dmk-tests:/u03/app/oracle/product/26.1/ [rdbms2300] /u03/app/oracle/product/26.1/jdk/bin/java -jar /u03/app/oracle/product/26.1/rdbms/admin/autoupgrade.jar -mode deploy -config upgr26ai.cfg
AutoUpgrade 26.5.260117 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>

autoupgrade start now upgrade in background

if you interesting in monitoring progress you can do it by executing lsj -a 30 in command line:

upg> lsj -a 30
upg> +----+------------+---------+---------+-------+----------+-------+----------------+
|Job#|     DB_NAME|    STAGE|OPERATION| STATUS|START_TIME|UPDATED|         MESSAGE|
+----+------------+---------+---------+-------+----------+-------+----------------+
| 101|DB1926CRSITE|PREFIXUPS|EXECUTING|RUNNING|  19:19:05|37s ago|Executing fixups|
+----+------------+---------+---------+-------+----------+-------+----------------+
Total jobs 1

The command lsj is running every 30 seconds. PRESS ENTER TO EXIT

second option is just checking log files in our log folder which we specifed during configuration file:



oracle@OL9-dmk-tests:~/autoupgrade/upg26/DB1926CRSITE/101/ [rdbms1900] tail -f autoupgrade_20260204.log
elapsed 45 seconds - FixUpTrigger.executeFixUp#246
2026-02-04 19:21:45.174 INFO [632] FixUp [DICTIONARY_STATS][PDB$SEED] waited for 45 seconds - FixUpTrigger.call#151
2026-02-04 19:22:13.046 INFO [634] FixUp [DICTIONARY_STATS][EM24REPO] elapsed 72 seconds - FixUpTrigger.executeFixUp#246
2026-02-04 19:22:30.331 INFO [632] FixUp [DICTIONARY_STATS][PDB$SEED] elapsed 45 seconds - FixUpTrigger.executeFixUp#246
2026-02-04 19:22:30.332 INFO [88] Running 2 fixups serially - FixUpsRunner.executeBatch#208
..
..
..

oracle@OL9-dmk-tests:~/autoupgrade/upg26/DB1926CRSITE/101/ [rdbms1900] tail -f autoupgrade_20260204.log
2026-02-04 19:27:54.370 INFO [1198] [1A3591] Finished - ExecuteSql.doSqlCmds#830
2026-02-04 19:27:54.370 INFO [1198] SQL*Plus data:5
 - CatctlMonUtils.getCurrentPhaseQuery#393
2026-02-04 19:27:54.376 INFO [1198] 5%Upgraded CDB$ROOT - CatctlMonUtils.displayCompletionPercentage#247
2026-02-04 19:27:54.382 INFO [1198] [Upgrading] is [5%] completed for [db1926cr_site1-cdb$root]
+---------+---------------+
|CONTAINER|     PERCENTAGE|
+---------+---------------+
| CDB$ROOT|   UPGRADE [5%]|
| PDB$SEED|UPGRADE PENDING|
| EM24REPO|UPGRADE PENDING|
...
...
..
| CDB$ROOT|SUCCESSFULLY UPGRADED [db1926cr_site1-cdb$root]|
| PDB$SEED|                                  UPGRADE [23%]|
| EM24REPO|                                  UPGRADE [23%]|
+---------+-----------------------------------------------+ - CatctlMonUtils.displayCompletionPercentage#269

...

on the end you should see small sum up with details to your logs:

Job 101 completed
------------------- Final Summary --------------------
Number of databases            [ 1 ]

Jobs finished                  [1]
Jobs failed                    [0]
Jobs restored                  [0]
Jobs pending                   [0]


Please check the summary report at:
/home/oracle/autoupgrade/upg26/cfgtoollogs/upgrade/auto/status/status.html
/home/oracle/autoupgrade/upg26/cfgtoollogs/upgrade/auto/status/status.log


26-02-04 20:18:54.884 INFO [88] Starting background threads for [oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteSysUpdates] - JobStage.startThreads#160
2026-02-04 20:18:54.884 INFO [88] Completed starting background threads for [oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteSysUpdates] - JobStage.startThreads#162
2026-02-04 20:18:54.895 INFO [88] Executing stage SYSUPDATES of job 101 - RunJobDefinition.runJob#141
2026-02-04 20:18:54.895 INFO [88] Running JobStageAction [oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteSysUpdates] - JobStage.executeStage#78
2026-02-04 20:22:20.598 INFO [88] The status of the JobStageAction [oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteSysUpdates] was [true] - JobStage.executeStage#86
2026-02-04 20:22:20.610 INFO [88] Completed stage SYSUPDATES of job 101 - RunJobDefinition.runJob#149
2026-02-04 20:22:20.610 INFO [88] Stopping background threads for [oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteSysUpdates] - JobStage.stopThreads#169
2026-02-04 20:22:20.610 INFO [88] Completed stopping background threads for [oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteSysUpdates] - JobStage.stopThreads#171
2026-02-04 20:22:20.635 INFO [88] Adding Job context key[dispatcher_stage] value[12] for job [101] - CommonBackBone.addJobContext#270
2026-02-04 20:22:20.643 INFO [88] Stopping background threads for Job - JobDefinition.stopJobThreads#132
2026-02-04 20:22:20.644 INFO [88] [0] threads have been stopped by JobDefinition - JobDefinition.stopJobThreads#134
2026-02-04 20:22:20.644 INFO [88] Dispatcher finished for 101 - RunJobDefinition.runJob#177
2026-02-04 20:22:20.644 INFO [88] End - RunJobDefinition.runJob#178
2026-02-04 20:22:20.671 INFO [88] ----------------------Stages  Summary------------------------ - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.671 INFO [88]     SETUP             <1 min                                  - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.671 INFO [88]     PREUPGRADE        <1 min                                  - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.671 INFO [88]     PRECHECKS         <1 min                                  - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     PREFIXUPS         3 min                                   - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     DRAIN             2 min                                   - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     DBUPGRADE         43 min                                  - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     DISPATCH          <1 min                                  - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     POSTCHECKS        <1 min                                  - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     DISPATCH          <1 min                                  - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     POSTFIXUPS        9 min                                   - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     POSTUPGRADE       <1 min                                  - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     SYSUPDATES        3 min                                   - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88]     COMPLETED         <1 min                                  - Utilities.writeStageSummary#1149
2026-02-04 20:22:20.672 INFO [88] End of dispatcher instance for DB1926CR_SITE1 - CommonBackBone.finalJobLogging#436


EM24REPO(3):Opening pdb with no Resource Manager plan active
Completed: Pluggable database EM24REPO opened read write
Completed: ALTER DATABASE OPEN /* db agent *//* {0:0:0} */
2026-02-04T20:21:21.027312+01:00
===========================================================
Dumping current patch information
===========================================================
Patch Id: 38743669
Unique Patch Id: 28353952
Patch Description: Database Release Update : 23.26.1.0.0 (38743669) Gold Image
Patch Apply Time: 2026-01-18T13:03:58+01:00
Patch Type: Release Update

Patch Id: 38743688
Unique Patch Id: 28353952
Patch Description: OCW RELEASE UPDATE 23.26.1.0.0 (GOLD IMAGE) (38743688) Gold Image
Patch Apply Time: 2026-01-18T13:04:30+01:00
Patch Type: Release Update
===========================================================
2026-02-04T20:21:21.522797+01:00

! DONE !

In my case its take around 40 min to upgrade CDB container and 1 PDB database.

!! Now you can enjoy your new version !!


oracle@OL9-dmk-tests:~/ [DB1926CRSITE (CDB$ROOT)] sqlplus "/ as sysdba"

SQL*Plus: Release 23.26.1.0.0 - Production on Wed Feb 4 20:28:19 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> select comp_name,version_full,status from dba_registry;

COMP_NAME					   VERSION_FULL 		  STATUS
-------------------------------------------------- ------------------------------ -----------
Oracle Database Catalog Views			   23.26.1.0.0			  VALID
Oracle Database Packages and Types		   23.26.1.0.0			  VALID
Oracle Real Application Clusters		   23.26.1.0.0			  OPTION OFF
Oracle XML Database				   23.26.1.0.0			  VALID
Oracle Workspace Manager			   23.26.1.0.0			  VALID