Introduction
Patch 19.29 is now available for Oracle Database Appliance series. Let’s find out what’s new and how to apply this patch.
What’s new?
The most important new component is probably database 26ai (as a DB System only). But don’t get fooled, 26ai is only the new name of 23ai (23.26). It doesn’t matter, and this is nice to see this latest version coming to the ODA. 26ai is also coming to all on-premise systems.
The other change that comes with this version is the way of applying the system patch. Several years ago, you should have applied the server patch and the GI patch separately. It was then grouped within the same update-server command we’re using since years. Now the split makes a come back and update-server is replaced by update-servercomponents for system stuff, and update-gihome for GI. Also note that updade-dcsagent vanished in 19.27.
Improvements have also been made on the security side, with SE Linux now being enabled. Regarding DB Systems, CPU and memory allocation is now more flexible, this is great. Note that a DB System is no more limited to 1 container database since 19.23, making virtualization on ODA more appealing than before.
My overall feeling about this patch is “maturity and stability”. It’s all that we need for this kind of platform.
Which ODA is compatible with this 19.29 release?
The latest ODAs X11-HA, X11-L and X11-S are supported, as well as X10, X9-2 and X8-2 series. X7-2 series and older ones are not supported anymore. If you own one from these older generations, you should have a renewal plan for the coming months. I still recommend keeping your ODA 7 years, not less, not more. This blog post is still relevant today: https://www.dbi-services.com/blog/why-you-should-consider-keeping-your-oda-more-than-5-years/.
Is this patch a cumulative one?
The rule is now well established: you can apply a patch on top of the four previous ones. 19.29 can then be applied on top of 19.28, 19.27, 19.26 and 19.25. It’s why it makes sense patching once a year: this is the perfect balance between moderate security needs and ease of patching.
In my lab, I will use an ODA X8-2M running 19.28 with one DB home, one database and one DB System. This procedure should apply the same way on your ODA a soon as you’re using 19.25 or later.
Is there also a patch for my databases?
Only databases version 19c are supported for bare metal. You should be able to patch a 23ai database running as a DB System to 26ai, but you’d probably better deploying a new DB System and unplug/plug your PDBs into the brand new DB System.
Download the patch and clone files
These files are mandatory:
- 38427251 => the patch itself
- 30403673 => the GI clone needed for deploying newer 19c GI version
- 30403662 => the DB clone for deploying newer version of 19c
These files are optional:
- 30403643 => ISO file for reimaging, not needed for patching
- 36524660 => System image for 26ai DB Systems
- 36524627 => the GI clone needed for deploying new 26ai GI version
- 36524642 => the DB clone for deploying new 26ai DB version
- 32451228 => The newer system image for 19c DB Systems
Be sure to choose the very latest 19.29 when downloading some files, download link from MOS will first propose older versions for GI clones, DB clones and ISO files.
Prepare the patching
Before starting, please check these prerequisites:
- filesystems /, /opt, /u01 and /root have at least 20% of available free space
- additional manually installed rpms must be removed
- revert profile scripts to default’s one (for grid and oracle users)
- make sure you’ve planned a sufficient downtime (4+ hours depending on the number of databases and DB Systems)
- do a sanity reboot before patching to kill zombie processes
- use ODABR to make snapshots of the important filesystems prior patching: this tool is now included in the software distribution
Version precheck
Start to check current versions of the various components:
odacli describe-component
System Version
--------------
19.28.0.0.0
System Node Name
----------------
dbioda01
Local System Version
--------------------
19.28.0.0.0
Component Installed Version Available Version
---------------------------------------- -------------------- --------------------
OAK 19.28.0.0.0 up-to-date
GI 19.28.0.0.250715 up-to-date
DB {
OraDB19000_home7 19.28.0.0.250715 up-to-date
[CPROD19]
}
DCSCONTROLLER 19.28.0.0.0 up-to-date
DCSCLI 19.28.0.0.0 up-to-date
DCSAGENT 19.28.0.0.0 up-to-date
DCSADMIN 19.28.0.0.0 up-to-date
OS 8.10 up-to-date
ILOM 5.1.4.25.r160118 up-to-date
BIOS 52140100 up-to-date
LOCAL CONTROLLER FIRMWARE {
[c4] 8000D9AB up-to-date
}
SHARED CONTROLLER FIRMWARE {
[c0, c1] VDV1RL06 up-to-date
}
LOCAL DISK FIRMWARE {
[c2d0, c2d1] XC311132 up-to-date
}
HMP 2.4.10.1.600 up-to-date
List the DB homes, databases, DB Systems and VMs:
odacli list-dbhomes
ID Name DB Version DB Edition Home Location Status
---------------------------------------- -------------------- -------------------- ---------- -------------------------------------------------------- ----------
e120c4c9-91b9-47b4-a234-b8ada12fce69 OraDB19000_home7 19.28.0.0.250715 EE /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_7 CONFIGURED
odacli list-databases
ID DB Name DB Type DB Version CDB Class Edition Shape Storage Status DB Home ID
---------------------------------------- ---------- -------- -------------------- ------- -------- -------- -------- -------- ------------ ----------------------------------------
976a80f2-4653-469f-8cd4-ddc1a21aff51 CPROD19 SI 19.28.0.0.250715 true OLTP EE odb8 ASM CONFIGURED e120c4c9-91b9-47b4-a234-b8ada12fce69
odacli list-dbsystems
Name Shape GI version DB info Status Created Updated
-------------------- ---------- ------------------ ------------------------------ ---------------------- ------------------------ ------------------------
dbs-03-tst dbs2 19.28.0.0.250715 19.28(CONFIGURED=1) CONFIGURED 2025-12-03 15:05:31 CET 2025-12-03 15:47:19 CET
odacli list-vms
No data found for resource VM.
Update the DCS components
Updating DCS components is the first step, after registering the patch file:
cd /opt/dbi
unzip p38427251_1929000_Linux-x86-64.zip
odacli update-repository -f /opt/dbi/oda-sm-19.29.0.0.0-251117-server.zip
sleep 30 ; odacli describe-job -i "91189839-e855-48ea-a6b1-7d9695da52a5"
Job details
----------------------------------------------------------------
ID: 7e69a05f-61fe-4b13-af5d-d78cfb7f11a9
Description: Repository Update
Status: Success
Created: December 03, 2025 16:09:45 CET
Message: /opt/dbi/oda-sm-19.29.0.0.0-251117-server.zip
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Unzip bundle December 03, 2025 16:09:49 CET December 03, 2025 16:10:00 CET Success
odacli describe-component
System Version
--------------
19.28.0.0.0
System Node Name
----------------
dbioda01
Local System Version
--------------------
19.28.0.0.0
Component Installed Version Available Version
---------------------------------------- -------------------- --------------------
OAK 19.28.0.0.0 19.29.0.0.0
GI 19.28.0.0.250715 19.29.0.0.251021
DB {
OraDB19000_home7 19.28.0.0.250715 19.29.0.0.251021
[CPROD19]
}
DCSCONTROLLER 19.28.0.0.0 19.29.0.0.0
DCSCLI 19.28.0.0.0 19.29.0.0.0
DCSAGENT 19.28.0.0.0 19.29.0.0.0
DCSADMIN 19.28.0.0.0 19.29.0.0.0
OS 8.10 up-to-date
ILOM 5.1.4.25.r160118 5.1.5.22.r165351
BIOS 52140100 52160100
LOCAL CONTROLLER FIRMWARE {
[c4] 8000D9AB up-to-date
}
SHARED CONTROLLER FIRMWARE {
[c0, c1] VDV1RL06 up-to-date
}
LOCAL DISK FIRMWARE {
[c2d0, c2d1] XC311132 up-to-date
}
HMP 2.4.10.1.600 up-to-date
Let’s update the DCS components to 19.29:
odacli update-dcsadmin -v 19.29.0.0.0
sleep 60 ; odacli describe-job -i "f2d216d5-f60d-46d6-a967-900c6e137421"
Job details
----------------------------------------------------------------
ID: f2d216d5-f60d-46d6-a967-900c6e137421
Description: DcsAdmin patching to 19.29.0.0.0
Status: Success
Created: December 03, 2025 16:12:26 CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Dcs-admin upgrade December 03, 2025 16:12:26 CET December 03, 2025 16:12:36 CET Success
Ping DCS Admin December 03, 2025 16:12:36 CET December 03, 2025 16:13:43 CET Success
sleep 30 ; odacli update-dcscomponents -v 19.29.0.0.0
{
"jobId" : "5cd855d4-7b35-44dc-84f9-4625f84d461b",
"status" : "Success",
"message" : "Update-dcscomponents is successful on all the node(s): DCS-Agent shutdown is successful. MySQL upgrade is successful. Metadata schema update is done. Script '/opt/oracle/dcs/log/jobfiles/5cd855d4-7b35-44dc-84f9-4625f84d461b/apply_metadata_change.sh' ran successfully. dcsagent RPM upgrade is successful. dcscli RPM upgrade is successful. dcscontroller RPM upgrade is successful. ahf RPM upgrade is successful. Successfully reset the Keystore password. HAMI RPM and DCS ensemble update was successful. Skipped removing old Libs. Successfully ran setupAgentAuth.sh ",
"reports" : null,
"createTimestamp" : "December 03, 2025 16:14:32 PM CET",
"description" : "Update-dcscomponents job completed and is not part of Agent job list",
"updatedTime" : "December 03, 2025 16:19:11 PM CET",
"jobType" : null,
"externalRequestId" : null,
"action" : null
}
System patching
Let’s do the prepatching of the system with the new -sc option:
odacli create-prepatchreport -sc -v 19.29.0.0.0
sleep 180 ; odacli describe-prepatchreport -i 317b0f75-fed7-480b-9dba-af7c635fabea
Prepatch Report
------------------------------------------------------------------------
Job ID: 317b0f75-fed7-480b-9dba-af7c635fabea
Description: Patch pre-checks for [OS, ILOM, ORACHKSERVER, SERVER] to 19.29.0.0.0
Status: SUCCESS
Created: December 3, 2025 4:20:13 PM CET
Result: All pre-checks succeeded
Node Name
---------------
dbioda01
Pre-Check Status Comments
------------------------------ -------- --------------------------------------
__OS__
Validate supported versions Success Validated minimum supported versions.
Validate patching tag Success Validated patching tag: 19.29.0.0.0.
Is patch location available Success Patch location is available.
Verify OS patch Success No dependencies found for RPMs being
removed, updated and installed. Check
/opt/oracle/dcs/log/jobfiles/
yumdryrunout_2025-12-03_16-20-
29.0193.1_251.log file for more
details
Validate command execution Success Validated command execution
__ILOM__
Validate ILOM server reachable Success Successfully connected with ILOM
server using public IP and USB
interconnect
Validate supported versions Success Validated minimum supported versions.
Validate patching tag Success Validated patching tag: 19.29.0.0.0.
Is patch location available Success Patch location is available.
Checking Ilom patch Version Success Successfully verified the versions
Patch location validation Success Successfully validated location
Validate command execution Success Validated command execution
__ORACHK__
Running orachk Success Successfully ran Orachk
Validate command execution Success Validated command execution
__SERVER__
Validate local patching Success Successfully validated server local
patching
Validate all KVM ACFS Success All KVM ACFS resources are running
resources are running
Validate DB System VM states Success All DB System VMs states are expected
Validate DB System AFD state Success All DB Systems are on required
versions
Validate command execution Success Validated command execution
OK let’s do the system patch:
odacli update-servercomponents -v 19.29.0.0.0
...
The server will reboot at the end of the patching. Let’s then check the job:
odacli describe-job -i "7f52ba58-f0d5-4055-864b-caae4209ce29"
Job details
----------------------------------------------------------------
ID: 7f52ba58-f0d5-4055-864b-caae4209ce29
Description: Server Patching to 19.29.0.0.0
Status: Success
Created: December 03, 2025 16:26:08 CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Deactivate Unit[dnf-makecache.timer] December 03, 2025 16:26:14 CET December 03, 2025 16:26:15 CET Success
Validate ILOM server reachable December 03, 2025 16:26:14 CET December 03, 2025 16:26:14 CET Success
Validating GI user metadata December 03, 2025 16:26:14 CET December 03, 2025 16:26:14 CET Success
Deactivate Unit[kdump.service] December 03, 2025 16:26:15 CET December 03, 2025 16:26:15 CET Success
Modify BM udev rules December 03, 2025 16:26:15 CET December 03, 2025 16:26:35 CET Success
Stop oakd December 03, 2025 16:26:35 CET December 03, 2025 16:26:39 CET Success
Creating repositories using yum December 03, 2025 16:26:39 CET December 03, 2025 16:26:41 CET Success
Updating YumPluginVersionLock rpm December 03, 2025 16:26:41 CET December 03, 2025 16:26:44 CET Success
Applying OS Patches December 03, 2025 16:26:44 CET December 03, 2025 16:32:20 CET Success
Applying HMP Patches December 03, 2025 16:32:20 CET December 03, 2025 16:32:23 CET Success
Creating repositories using yum December 03, 2025 16:32:20 CET December 03, 2025 16:32:20 CET Success
Oda-hw-mgmt upgrade December 03, 2025 16:32:23 CET December 03, 2025 16:32:52 CET Success
Patch location validation December 03, 2025 16:32:23 CET December 03, 2025 16:32:23 CET Success
Setting SELinux mode December 03, 2025 16:32:23 CET December 03, 2025 16:32:23 CET Success
Applying Firmware local Disk Patches December 03, 2025 16:32:53 CET December 03, 2025 16:32:57 CET Success
OSS Patching December 03, 2025 16:32:53 CET December 03, 2025 16:32:53 CET Success
Applying Firmware local Controller Patch December 03, 2025 16:32:57 CET December 03, 2025 16:33:01 CET Success
Checking Ilom patch Version December 03, 2025 16:33:01 CET December 03, 2025 16:33:01 CET Success
Patch location validation December 03, 2025 16:33:01 CET December 03, 2025 16:33:01 CET Success
Save password in Wallet December 03, 2025 16:33:01 CET December 03, 2025 16:33:02 CET Success
Apply Ilom patch December 03, 2025 16:33:02 CET December 03, 2025 16:43:49 CET Success
Disabling IPMI v2 December 03, 2025 16:33:02 CET December 03, 2025 16:33:02 CET Success
Copying Flash Bios to Temp location December 03, 2025 16:43:49 CET December 03, 2025 16:43:49 CET Success
Start oakd December 03, 2025 16:43:49 CET December 03, 2025 16:44:06 CET Success
Add SYSNAME in Env December 03, 2025 16:44:06 CET December 03, 2025 16:44:06 CET Success
Cleanup JRE Home December 03, 2025 16:44:06 CET December 03, 2025 16:44:06 CET Success
Starting the clusterware December 03, 2025 16:44:06 CET December 03, 2025 16:45:42 CET Success
Generating and saving BOM December 03, 2025 16:45:42 CET December 03, 2025 16:46:12 CET Success
Update System version December 03, 2025 16:45:42 CET December 03, 2025 16:45:42 CET Success
Update lvm.conf file December 03, 2025 16:45:42 CET December 03, 2025 16:45:42 CET Success
PreRebootNode Actions December 03, 2025 16:46:12 CET December 03, 2025 16:47:17 CET Success
Reboot Node December 03, 2025 16:47:17 CET December 03, 2025 16:47:17 CET Success
GI patching
Let’s unzip and register the patch file, and do the precheck for GI:
cd /opt/dbi
unzip -o p30403673_1929000_Linux-x86-64.zip
odacli update-repository -f /opt/dbi/odacli-dcs-19.29.0.0.0-251117-GI-19.29.0.0.zip
sleep 30 ; odacli describe-job -i "2e15156c-451b-470f-a523-03c4d024b726"
Job details
----------------------------------------------------------------
ID: 2e15156c-451b-470f-a523-03c4d024b726
Description: Repository Update
Status: Success
Created: December 03, 2025 17:29:43 CET
Message: /opt/dbi/odacli-dcs-19.29.0.0.0-251117-GI-19.29.0.0.zip
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Unzip bundle December 03, 2025 17:29:45 CET December 03, 2025 17:30:32 CET Success
odacli create-prepatchreport -gi -v 19.29.0.0.0
sleep 180 ; odacli describe-prepatchreport -i be3c7eb0-7bd8-4295-aa7f-ecd9e104d66f
Prepatch Report
------------------------------------------------------------------------
Job ID: be3c7eb0-7bd8-4295-aa7f-ecd9e104d66f
Description: Patch pre-checks for [RHPGI, GI] to 19.29.0.0.0
Status: SUCCESS
Created: December 3, 2025 5:30:45 PM CET
Result: All pre-checks succeeded
Node Name
---------------
dbioda01
Pre-Check Status Comments
------------------------------ -------- --------------------------------------
__RHPGI__
Evaluate GI patching Success Successfully validated GI patching
Validate command execution Success Validated command execution
__GI__
Validate GI metadata Success Successfully validated GI metadata
Validate supported GI versions Success Successfully validated minimum version
Validate available space Success Validated free space under /u01
Is clusterware running Success Clusterware is running
Validate patching tag Success Validated patching tag: 19.29.0.0.0.
Is system provisioned Success Verified system is provisioned
Validate ASM in online Success ASM is online
Validate kernel log level Success Successfully validated the OS log
level
Validate minimum agent version Success GI patching enabled in current
DCSAGENT version
Validate Central Inventory Success oraInventory validation passed
Validate patching locks Success Validated patching locks
Validate clones location exist Success Validated clones location
Validate DB start dependencies Success DBs START dependency check passed
Validate DB stop dependencies Success DBs STOP dependency check passed
Validate space for clones Success Clones volume is already created
volume
Validate command execution Success Validated command execution
Let’s apply the GI update now:
odacli update-gihome -v 19.29.0.0.0
sleep 400 ; odacli describe-job -i "5eaaa4ad-996b-4024-858d-a0f0082705d5"
Job details
----------------------------------------------------------------
ID: 5eaaa4ad-996b-4024-858d-a0f0082705d5
Description: Patch GI with RHP to 19.29.0.0.0
Status: Success
Created: December 03, 2025 17:37:30 CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Starting the clusterware December 03, 2025 17:37:44 CET December 03, 2025 17:37:44 CET Success
Creating GI home directories December 03, 2025 17:37:45 CET December 03, 2025 17:37:45 CET Success
Extract GI clone December 03, 2025 17:37:45 CET December 03, 2025 17:37:45 CET Success
Provisioning Software Only GI with RHP December 03, 2025 17:37:45 CET December 03, 2025 17:37:45 CET Success
Registering image December 03, 2025 17:37:45 CET December 03, 2025 17:37:45 CET Success
Registering image December 03, 2025 17:37:45 CET December 03, 2025 17:37:45 CET Success
Registering working copy December 03, 2025 17:37:45 CET December 03, 2025 17:37:45 CET Success
Patch GI with RHP December 03, 2025 17:38:21 CET December 03, 2025 17:43:07 CET Success
Set CRS ping target December 03, 2025 17:43:07 CET December 03, 2025 17:43:07 CET Success
Updating .bashrc December 03, 2025 17:43:07 CET December 03, 2025 17:43:07 CET Success
Updating GI home metadata December 03, 2025 17:43:07 CET December 03, 2025 17:43:07 CET Success
Updating GI home version December 03, 2025 17:43:07 CET December 03, 2025 17:43:12 CET Success
Updating All DBHome version December 03, 2025 17:43:12 CET December 03, 2025 17:43:17 CET Success
Starting the clusterware December 03, 2025 17:43:38 CET December 03, 2025 17:43:39 CET Success
Validate ACFS resources are running December 03, 2025 17:43:39 CET December 03, 2025 17:43:39 CET Success
Validate DB System VMs states December 03, 2025 17:43:39 CET December 03, 2025 17:43:40 CET Success
Validate GI availability December 03, 2025 17:43:39 CET December 03, 2025 17:43:39 CET Success
Patch CPU Pools distribution December 03, 2025 17:43:40 CET December 03, 2025 17:43:40 CET Success
Patch DB System domain config December 03, 2025 17:43:40 CET December 03, 2025 17:43:40 CET Success
Patch KVM CRS type December 03, 2025 17:43:40 CET December 03, 2025 17:43:40 CET Success
Patch VM vDisks CRS dependencies December 03, 2025 17:43:40 CET December 03, 2025 17:43:40 CET Success
Save custom VNetworks to storage December 03, 2025 17:43:40 CET December 03, 2025 17:43:41 CET Success
Add network filters to DB Systems December 03, 2025 17:43:41 CET December 03, 2025 17:43:41 CET Success
Create network filters December 03, 2025 17:43:41 CET December 03, 2025 17:43:41 CET Success
Patch DB Systems vDisks CRS dependencies December 03, 2025 17:43:41 CET December 03, 2025 17:43:42 CET Success
Patch DB Systems custom scale metadata December 03, 2025 17:43:42 CET December 03, 2025 17:43:42 CET Success
No reboot is needed for this patch.
Check the versions
odacli describe-component
System Version
--------------
19.29.0.0.0
System Node Name
----------------
dbioda01
Local System Version
--------------------
19.29.0.0.0
Component Installed Version Available Version
---------------------------------------- -------------------- --------------------
OAK 19.29.0.0.0 up-to-date
GI 19.29.0.0.251021 up-to-date
DB {
OraDB19000_home7 19.28.0.0.250715 19.29.0.0.251021
[CPROD19]
}
DCSCONTROLLER 19.29.0.0.0 up-to-date
DCSCLI 19.29.0.0.0 up-to-date
DCSAGENT 19.29.0.0.0 up-to-date
DCSADMIN 19.29.0.0.0 up-to-date
OS 8.10 up-to-date
ILOM 5.1.5.22.r165351 up-to-date
BIOS 52160100 up-to-date
LOCAL CONTROLLER FIRMWARE {
[c4] 8000D9AB up-to-date
}
SHARED CONTROLLER FIRMWARE {
[c0, c1] VDV1RL06 up-to-date
}
LOCAL DISK FIRMWARE {
[c2d0, c2d1] XC311132 up-to-date
}
HMP 2.4.10.1.600 up-to-date
Patching the storage
Patching the storage is only needed if describe-component tells you that you’re not up-to-date. On my X8-2M, it wasn’t needed. If your ODA needs the storage patch, it’s easy:
odacli update-storage -v 19.29.0.0.0
odacli describe-job -i ...
The server will reboot when done.
Patching the DB homes
It’s now time to patch the DB home and the database on my ODA. Let’s first unzip and register the patch file in the repository:
unzip -o p30403662_1929000_Linux-x86-64.zip
odacli update-repository -f /opt/dbi/odacli-dcs-19.29.0.0.0-251117-DB-19.29.0.0.zip
sleep 30; odacli describe-job -i "480c3911-d673-47fd-b6c5-f65b2cc4a1b9"
Job details
----------------------------------------------------------------
ID: 480c3911-d673-47fd-b6c5-f65b2cc4a1b9
Description: Repository Update
Status: Success
Created: December 03, 2025 17:51:13 CET
Message: /opt/dbi/odacli-dcs-19.29.0.0.0-251117-DB-19.29.0.0.zip
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Unzip bundle December 03, 2025 17:51:13 CET December 03, 2025 17:51:49 CET Success
odacli list-dbhomes
ID Name DB Version DB Edition Home Location Status
---------------------------------------- -------------------- -------------------- ---------- -------------------------------------------------------- ----------
e120c4c9-91b9-47b4-a234-b8ada12fce69 OraDB19000_home7 19.28.0.0.250715 EE /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_7 CONFIGURED
Let’s check if the patch can be applied, then patch this DB home:
odacli create-prepatchreport -d -i e120c4c9-91b9-47b4-a234-b8ada12fce69 -v 19.29.0.0.0
sleep 600; odacli describe-prepatchreport -i fed289b2-848a-460f-9ba7-ef87c2a08dca
Prepatch Report
------------------------------------------------------------------------
Job ID: fed289b2-848a-460f-9ba7-ef87c2a08dca
Description: Patch pre-checks for [DB, RHPDB, ORACHKDB] to 19.29.0.0.0: DbHome is OraDB19000_home7
Status: SUCCESS
Created: December 3, 2025 5:53:51 PM CET
Result: All pre-checks succeeded
Node Name
---------------
dbioda01
Pre-Check Status Comments
------------------------------ -------- --------------------------------------
__DB__
Validate DB Home ID Success Validated DB Home ID:
e120c4c9-91b9-47b4-a234-b8ada12fce69
Validate patching tag Success Validated patching tag: 19.29.0.0.0.
Is system provisioned Success Verified system is provisioned
Validate minimum agent version Success Validated minimum agent version
Is GI upgraded Success Validated GI is upgraded
Validate available space for Success Validated free space required under
db /u01
Validate there is usable Success Successfully validated Oracle Base
space under oracle base usable space
Validate glogin.sql file Success Successfully verified glogin.sql
won't break patching
Validate dbHomesOnACFS Success User has configured disk group for
configured Database homes on ACFS
Validate Oracle base Success Successfully validated Oracle Base
Is DB clone available Success Successfully validated clone file
exists
Validate command execution Success Validated command execution
__RHPDB__
Evaluate DBHome patching with Success Successfully validated updating
RHP dbhome with RHP. and local patching
is possible
Validate command execution Success Validated command execution
__ORACHK__
Running orachk Success Successfully ran Orachk
Validate command execution Success Validated command execution
odacli update-dbhome -i e120c4c9-91b9-47b4-a234-b8ada12fce69 -v 19.29.0.0.0
sleep 600; odacli describe-job -i "b2676a55-96de-4101-8686-98c6a88b8477"
Job details
----------------------------------------------------------------
ID: b2676a55-96de-4101-8686-98c6a88b8477
Description: DB Home Patching to 19.29.0.0.0: Home ID is e120c4c9-91b9-47b4-a234-b8ada12fce69
Status: Success
Created: December 03, 2025 18:05:45 CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Creating wallet for DB Client December 03, 2025 18:06:34 CET December 03, 2025 18:06:34 CET Success
Patch databases by RHP - [CPROD19] December 03, 2025 18:06:34 CET December 03, 2025 18:13:06 CET Success
Updating database metadata December 03, 2025 18:13:06 CET December 03, 2025 18:13:06 CET Success
Upgrade pwfile to 12.2 December 03, 2025 18:13:06 CET December 03, 2025 18:13:09 CET Success
Set log_archive_dest for Database December 03, 2025 18:13:09 CET December 03, 2025 18:13:12 CET Success
Populate PDB metadata December 03, 2025 18:13:13 CET December 03, 2025 18:13:14 CET Success
Generating and saving BOM December 03, 2025 18:13:15 CET December 03, 2025 18:13:54 CET Success
TDE parameter update December 03, 2025 18:14:24 CET December 03, 2025 18:14:24 CET Success
Let’s check if everything is fine:
odacli list-dbhomes
ID Name DB Version DB Edition Home Location Status
---------------------------------------- -------------------- -------------------- ---------- -------------------------------------------------------- ----------
e120c4c9-91b9-47b4-a234-b8ada12fce69 OraDB19000_home7 19.28.0.0.250715 EE /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_7 CONFIGURED
57c0dd7f-dcf4-4a38-9e79-4bf8c78e81bb OraDB19000_home9 19.29.0.0.251021 EE /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_9 CONFIGURED
odacli list-databases
ID DB Name DB Type DB Version CDB Class Edition Shape Storage Status DB Home ID
---------------------------------------- ---------- -------- -------------------- ------- -------- -------- -------- -------- ------------ ----------------------------------------
976a80f2-4653-469f-8cd4-ddc1a21aff51 CPROD19 SI 19.29.0.0.251021 true OLTP EE odb8 ASM CONFIGURED 57c0dd7f-dcf4-4a38-9e79-4bf8c78e81bb
Let’s now remove the old DB home:
odacli delete-dbhome -i e120c4c9-91b9-47b4-a234-b8ada12fce69
...
Cleanse the old patches
Don’t forget to remove the previous patch from the repository:
odacli cleanup-patchrepo -comp all -v 19.28.0.0.0
odacli describe-job -i "76ba3e95-bb71-4ebe-b7b2-f3cac07d89dd"
Job details
----------------------------------------------------------------
ID: 76ba3e95-bb71-4ebe-b7b2-f3cac07d89dd
Description: Cleanup patchrepos
Status: Success
Created: December 03, 2025 18:19:22 CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Cleanup Repository December 03, 2025 18:19:22 CET December 03, 2025 18:19:22 CET Success
Cleanup old ASR rpm December 03, 2025 18:19:22 CET December 03, 2025 18:19:22 CET Success
Old GI binaries are still there, it’s better removing them manually:
du -hs /u01/app/19.2*
14G /u01/app/19.28.0.0
14G /u01/app/19.29.0.0
rm -rf /u01/app/19.28.0.0
Post-patching tasks
You will need to put back your specific configuration:
- add your additional RPMs
- put back your profile scripts for grid and oracle users
- check if monitoring still works
Patching the DB System
If you use DB Systems on your ODA, meaning that some of your databases are running in dedicated VMs, you will need to apply the patch inside each DB System. As the repository is shared, patch files are already available for DB Systems. Applying the patch is similar to what you did on bare metal:
ssh dbs-03-tst
odacli update-dcsadmin -v 19.29.0.0.0
sleep 60 ; odacli describe-job -i 43df9afb-adc1-479c-8987-c8d24f056c02
Job details
----------------------------------------------------------------
ID: 43df9afb-adc1-479c-8987-c8d24f056c02
Description: DcsAdmin patching to 19.29.0.0.0
Status: Success
Created: December 08, 2025 10:15:13 CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Dcs-admin upgrade December 08, 2025 10:15:14 CET December 08, 2025 10:15:25 CET Success
Ping DCS Admin December 08, 2025 10:15:25 CET December 08, 2025 10:16:33 CET Success
sleep 30 ; odacli update-dcscomponents -v 19.29.0.0.0
{
"jobId" : "91fd5f67-5ba8-4636-9046-0fe1921a659e",
"status" : "Success",
"message" : "Update-dcscomponents is successful on all the node(s): DCS-Agent shutdown is successful. MySQL upgrade is successful. Metadata schema update is done. Script '/opt/oracle/dcs/log/jobfiles/91fd5f67-5ba8-4636-9046-0fe1921a659e/apply_metadata_change.sh' ran successfully. dcsagent RPM upgrade is successful. dcscli RPM upgrade is successful. dcscontroller RPM upgrade is successful. ahf RPM upgrade is successful. Successfully reset the Keystore password. HAMI RPM and DCS ensemble update was successful. Skipped removing old Libs. Successfully ran setupAgentAuth.sh ",
"reports" : null,
"createTimestamp" : "December 08, 2025 10:17:38 AM CET",
"description" : "Update-dcscomponents job completed and is not part of Agent job list",
"updatedTime" : "December 08, 2025 10:23:37 AM CET",
"jobType" : null,
"externalRequestId" : null,
"action" : null
}
odacli create-prepatchreport -sc -v 19.29.0.0.0
sleep 20 ; odacli describe-prepatchreport -i f2f90339-16b8-49a5-be8c-408dd0e9f28b
ps -ef | grep pmon
Prepatch Report
------------------------------------------------------------------------
Job ID: f2f90339-16b8-49a5-be8c-408dd0e9f28b
Description: Patch pre-checks for [OS, ORACHKSERVER, SERVER] to 19.29.0.0.0
Status: SUCCESS
Created: December 8, 2025 10:25:17 AM CET
Result: All pre-checks succeeded
Node Name
---------------
dbs-03-tst
Pre-Check Status Comments
------------------------------ -------- --------------------------------------
__OS__
Validate supported versions Success Validated minimum supported versions.
Validate patching tag Success Validated patching tag: 19.29.0.0.0.
Is patch location available Success Patch location is available.
Verify OS patch Success No dependencies found for RPMs being
removed, updated and installed. Check
/opt/oracle/dcs/log/jobfiles/
yumdryrunout_2025-12-08_10-25-
34.0670.1_222.log file for more
details
Validate command execution Success Validated command execution
__ORACHK__
Running orachk Success Successfully ran Orachk
Validate command execution Success Validated command execution
__SERVER__
Validate local patching Success Successfully validated server local
patching
Validate all KVM ACFS Success All KVM ACFS resources are running
resources are running
Validate DB System VM states Success All DB System VMs states are expected
Enable support for Multi-DB Success No need to convert the DB System
Validate DB System AFD state Success AFD is not configured
Validate command execution Success Validated command execution
odacli update-servercomponents -v 19.29.0.0.0
The DB System will reboot.
odacli describe-job -i 5a23ae5b-43ed-4c39-ba79-21cd8a125b79
Job details
----------------------------------------------------------------
ID: 5a23ae5b-43ed-4c39-ba79-21cd8a125b79
Description: Server Patching to 19.29.0.0.0
Status: Success
Created: December 08, 2025 10:30:04 CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Validating GI user metadata December 08, 2025 10:30:13 CET December 08, 2025 10:30:13 CET Success
Deactivate Unit[dnf-makecache.timer] December 08, 2025 10:30:14 CET December 08, 2025 10:30:14 CET Success
Deactivate Unit[kdump.service] December 08, 2025 10:30:14 CET December 08, 2025 10:30:15 CET Success
Modify DBVM udev rules December 08, 2025 10:30:15 CET December 08, 2025 10:30:36 CET Success
Creating repositories using yum December 08, 2025 10:30:36 CET December 08, 2025 10:30:39 CET Success
Updating YumPluginVersionLock rpm December 08, 2025 10:30:39 CET December 08, 2025 10:30:42 CET Success
Applying OS Patches December 08, 2025 10:30:42 CET December 08, 2025 10:34:11 CET Success
Creating repositories using yum December 08, 2025 10:34:11 CET December 08, 2025 10:34:12 CET Success
Applying HMP Patches December 08, 2025 10:34:12 CET December 08, 2025 10:34:15 CET Success
Setting SELinux mode December 08, 2025 10:34:15 CET December 08, 2025 10:34:15 CET Success
Oda-hw-mgmt upgrade December 08, 2025 10:34:16 CET December 08, 2025 10:34:44 CET Success
Patch location validation December 08, 2025 10:34:16 CET December 08, 2025 10:34:16 CET Success
Cleanup JRE Home December 08, 2025 10:34:45 CET December 08, 2025 10:34:45 CET Success
Generating and saving BOM December 08, 2025 10:34:56 CET December 08, 2025 10:35:09 CET Success
Update System version December 08, 2025 10:34:56 CET December 08, 2025 10:34:56 CET Success
PreRebootNode Actions December 08, 2025 10:35:09 CET December 08, 2025 10:35:09 CET Success
Reboot Node December 08, 2025 10:35:09 CET December 08, 2025 10:35:09 CET Success
odacli create-prepatchreport -gi -v 19.29.0.0.0
sleep 240 ; odacli describe-prepatchreport -i 56c7b4b1-3787-42af-b4b0-0fa6715a91f7
Prepatch Report
------------------------------------------------------------------------
Job ID: 56c7b4b1-3787-42af-b4b0-0fa6715a91f7
Description: Patch pre-checks for [RHPGI, GI] to 19.29.0.0.0
Status: SUCCESS
Created: December 8, 2025 10:37:05 AM CET
Result: All pre-checks succeeded
Node Name
---------------
dbs-03-tst
Pre-Check Status Comments
------------------------------ -------- --------------------------------------
__RHPGI__
Evaluate GI patching Success Successfully validated GI patching
Validate command execution Success Validated command execution
__GI__
Validate GI metadata Success Successfully validated GI metadata
Validate supported GI versions Success Successfully validated minimum version
Validate available space Success Validated free space under /u01
Is clusterware running Success Clusterware is running
Validate patching tag Success Validated patching tag: 19.29.0.0.0.
Is system provisioned Success Verified system is provisioned
Validate BM versions Success Validated BM server components
versions
Validate kernel log level Success Successfully validated the OS log
level
Validate minimum agent version Success GI patching enabled in current
DCSAGENT version
Validate Central Inventory Success oraInventory validation passed
Validate patching locks Success Validated patching locks
Validate clones location exist Success Validated clones location
Validate command execution Success Validated command execution
odacli update-gihome -v 19.29.0.0.0
sleep 600 ; odacli describe-job -i 571205f2-bdf2-43a2-944a-ec2765148446
odacli describe-job -i 571205f2-bdf2-43a2-944a-ec2765148446
Job details
----------------------------------------------------------------
ID: 571205f2-bdf2-43a2-944a-ec2765148446
Description: Patch GI with RHP to 19.29.0.0.0
Status: Success
Created: December 08, 2025 10:43:47 CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Starting the clusterware December 08, 2025 10:44:07 CET December 08, 2025 10:44:07 CET Success
Registering image December 08, 2025 10:44:08 CET December 08, 2025 10:44:08 CET Success
Registering working copy December 08, 2025 10:44:08 CET December 08, 2025 10:44:09 CET Success
Creating GI home directories December 08, 2025 10:44:09 CET December 08, 2025 10:44:09 CET Success
Extract GI clone December 08, 2025 10:44:09 CET December 08, 2025 10:44:09 CET Success
Provisioning Software Only GI with RHP December 08, 2025 10:44:09 CET December 08, 2025 10:44:09 CET Success
Registering image December 08, 2025 10:44:09 CET December 08, 2025 10:44:09 CET Success
Patch GI with RHP December 08, 2025 10:44:49 CET December 08, 2025 10:49:16 CET Success
Set CRS ping target December 08, 2025 10:49:16 CET December 08, 2025 10:49:16 CET Success
Updating .bashrc December 08, 2025 10:49:16 CET December 08, 2025 10:49:16 CET Success
Updating GI home metadata December 08, 2025 10:49:16 CET December 08, 2025 10:49:17 CET Success
Updating GI home version December 08, 2025 10:49:17 CET December 08, 2025 10:49:24 CET Success
Updating All DBHome version December 08, 2025 10:49:24 CET December 08, 2025 10:49:30 CET Success
Patch DB System on BM December 08, 2025 10:50:05 CET December 08, 2025 10:50:11 CET Success
Starting the clusterware December 08, 2025 10:50:05 CET December 08, 2025 10:50:05 CET Success
odacli list-dbhomes
ID Name DB Version DB Edition Home Location Status
---------------------------------------- -------------------- -------------------- ---------- -------------------------------------------------------- ----------
46268d88-e958-4c16-b45b-c32d5e0203fb OraDB19000_home1 19.28.0.0.250715 EE /u01/app/oracle/product/19.0.0.0/dbhome_1 CONFIGURED
odacli create-prepatchreport -d -i 46268d88-e958-4c16-b45b-c32d5e0203fb -v 19.29.0.0.0
sleep 600 ; odacli describe-prepatchreport -i eb00906a-0ecc-4a9d-968a-272d4c3719f4
Prepatch Report
------------------------------------------------------------------------
Job ID: eb00906a-0ecc-4a9d-968a-272d4c3719f4
Description: Patch pre-checks for [DB, RHPDB, ORACHKDB] to 19.29.0.0.0: DbHome is OraDB19000_home1
Status: SUCCESS
Created: December 8, 2025 11:27:25 AM CET
Result: All pre-checks succeeded
Node Name
---------------
dbs-03-tst
Pre-Check Status Comments
------------------------------ -------- --------------------------------------
__DB__
Validate DB Home ID Success Validated DB Home ID:
46268d88-e958-4c16-b45b-c32d5e0203fb
Validate patching tag Success Validated patching tag: 19.29.0.0.0.
Is system provisioned Success Verified system is provisioned
Validate minimum agent version Success Validated minimum agent version
Is GI upgraded Success Validated GI is upgraded
Validate available space for Success Validated free space required under
db /u01
Validate there is usable Success Successfully validated Oracle Base
space under oracle base usable space
Validate glogin.sql file Success Successfully verified glogin.sql
won't break patching
Is DB clone available Success Successfully validated clone file
exists
Validate command execution Success Validated command execution
__RHPDB__
Evaluate DBHome patching with Success Successfully validated updating
RHP dbhome with RHP. and local patching
is possible
Validate command execution Success Validated command execution
__ORACHK__
Running orachk Success Successfully ran Orachk
Validate command execution Success Validated command execution
odacli update-dbhome -i 46268d88-e958-4c16-b45b-c32d5e0203fb -v 19.29.0.0.0
sleep 600 ; odacli describe-job -i aac90798-a6a4-4740-bfa6-77bcb80cba7c
Job details
----------------------------------------------------------------
ID: aac90798-a6a4-4740-bfa6-77bcb80cba7c
Description: DB Home Patching to 19.29.0.0.0: Home ID is 46268d88-e958-4c16-b45b-c32d5e0203fb
Status: Success
Created: December 08, 2025 11:36:57 CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Creating wallet for DB Client December 08, 2025 11:37:43 CET December 08, 2025 11:37:43 CET Success
Patch databases by RHP - [CTEST19] December 08, 2025 11:37:43 CET December 08, 2025 11:45:11 CET Success
Updating database metadata December 08, 2025 11:45:11 CET December 08, 2025 11:45:12 CET Success
Upgrade pwfile to 12.2 December 08, 2025 11:45:12 CET December 08, 2025 11:45:17 CET Success
Set log_archive_dest for Database December 08, 2025 11:45:17 CET December 08, 2025 11:45:21 CET Success
Populate PDB metadata December 08, 2025 11:45:22 CET December 08, 2025 11:45:24 CET Success
Generating and saving BOM December 08, 2025 11:45:24 CET December 08, 2025 11:46:10 CET Success
TDE parameter update December 08, 2025 11:46:39 CET December 08, 2025 11:46:39 CET Success
odacli list-databases
ID DB Name DB Type DB Version CDB Class Edition Shape Storage Status DB Home ID
---------------------------------------- ---------- -------- -------------------- ------- -------- -------- -------- -------- ------------ ----------------------------------------
54e88627-a3cf-4696-956b-6262bbd51cf0 CTEST19 SI 19.29.0.0.251021 true OLTP EE odb2 ASM CONFIGURED 85b6e4eb-5db4-4165-bfb3-e3da52dc4777
odacli delete-dbhome -i 46268d88-e958-4c16-b45b-c32d5e0203fb
...
odacli describe-component
System Version
--------------
19.29.0.0.0
System Node Name
----------------
dbs-03-tst
Local System Version
--------------------
19.29.0.0.0
Component Installed Version Available Version
---------------------------------------- -------------------- --------------------
OAK 19.29.0.0.0 up-to-date
GI 19.29.0.0.251021 up-to-date
DB {
OraDB19000_home2 19.29.0.0.251021 up-to-date
[CTEST19]
}
DCSCONTROLLER 19.29.0.0.0 up-to-date
DCSCLI 19.29.0.0.0 up-to-date
DCSAGENT 19.29.0.0.0 up-to-date
DCSADMIN 19.29.0.0.0 up-to-date
OS 8.10 up-to-date
Don’t forget to apply this procedure on each of your DB Systems.
Provision a new 26ai DB System
This is an optional step, only if you’d like to try 26ai database. First unzip and register the VM template, GI 26ai and DB 26ai:
unzip -o p36524660_1929000_Linux-x86-64.zip
unzip -o p36524627_1929000_Linux-x86-64.zip
unzip -o p36524642_1929000_Linux-x86-64.zip
odacli update-repository -f /opt/dbi/odacli-dcs-23.26.0.0.0-251116-ODAVM-19.29.0.0.zip
odacli update-repository -f /opt/dbi/odacli-dcs-23.26.0.0.0-251116-GI-23.26.0.0.zip
odacli update-repository -f /opt/dbi/odacli-dcs-23.26.0.0.0-251116-DB-23.26.0.0.zip
sleep 30 ; odacli list-jobs | tail -n 4
d4700315-db8c-4522-af55-0fddd262bfe4 Repository Update 2025-12-08 15:20:14 CET Success
ba7d452f-e03d-46d0-a607-fd7c758cd1b1 Repository Update 2025-12-08 15:20:59 CET Success
bfc102d1-985b-4792-8054-03709aa8d949 Repository Update 2025-12-08 15:21:20 CET Success
odacli describe-dbsystem-image | grep 23.26
DBVM 23.26.0.0.0 23.26.0.0.0
GI 23.26.0.0.0 23.26.0.0.0
DB 23.26.0.0.0 23.26.0.0.0
Now let’s create a json file based on the one I used to create my 19.28 DB System and adjust some parameters. Then create the DB System:
cat create_dbs-03-tst-cdb.json | sed 's/dbs-03-tst/dbs-04-tst/g' | sed 's/10.16.0.146/10.16.0.147/g' | sed 's/CTEST19/CTEST26/g' | sed 's/19.28.0.0.250715/23.26.0.0.0/g' > create_dbs-04-tst-cdb.json
odacli create-dbsystem -p /opt/dbi/create_dbs-04-tst-cdb.json
odacli describe-job -i c0c8b0a0-5033-46b5-81a1-f326f6caa761
...
35 minutes later, my new DB System is ready to use:
Name Shape GI version DB info Status Created Updated
-------------------- ---------- ------------------ ------------------------------ ---------------------- ------------------------ ------------------------
dbs-03-tst dbs2 19.29.0.0.251021 19.29(CONFIGURED=1) CONFIGURED 2025-12-03 15:05:31 CET 2025-12-08 10:50:06 CET
dbs-04-tst dbs2 23.26.0.0.0 23.26(CONFIGURED=1) CONFIGURED 2025-12-08 15:32:48 CET 2025-12-08 16:09:10 CET
Conclusion
Applying this patch is rather easy. Remember these key points when using an ODA:
- keep it clean
- keep it under control
- keep it updated