Actually I planned for a different blog post this morning. But since I have a backlog of unanswered comments accumulated I came across this interesting question from Pedro. He wanted to know how he can patch the OCW component in his database home. So I thought I will show you the process of Adding the Oracle 19.14.0 OCW / GI bundle patch to my database home.

Photo by Barthelemy de Mazenod on Unsplash
Is this necessary?
That’s a good question for a Monday morning. I think: No, that isn’t necessary for a “Database only” home where you don’t have or use Grid Infrastructure (GI) or Clusterware (OCW). I tried to get to raw facts of this topic a long while ago. But I failed. So let us check at first what’s in a normal 19c database home.
I will start with an ordinary “opatch lsinventory“:
$ ./opatch lsinventory
Oracle Interim Patch Installer version 12.2.0.1.28
Copyright (c) 2022, Oracle Corporation. All rights reserved.
Oracle Home : /u01/app/oracle/product/19
Central Inventory : /u01/app/oraInventory
from : /u01/app/oracle/product/19/oraInst.loc
OPatch version : 12.2.0.1.28
OUI version : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2022-02-07_11-44-10AM_1.log
Lsinventory Output file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/lsinv/lsinventory2022-02-07_11-44-10AM.txt
--------------------------------------------------------------------------------
Local Machine Information::
Hostname: hol
ARU platform id: 226
ARU platform description:: Linux x86-64
Installed Top-level Products (1):
Oracle Database 19c 19.0.0.0.0
There are 1 products installed in this Oracle Home.
Interim patches (3) :
Patch 33561310 : applied on Wed Jan 19 22:12:28 CET 2022
Unique Patch ID: 24538862
Patch description: "OJVM RELEASE UPDATE: 19.14.0.0.220118 (33561310)"
Created on 5 Jan 2022, 08:13:10 hrs UTC
Bugs fixed:
...
Patch 33515361 : applied on Wed Jan 19 21:37:55 CET 2022
Unique Patch ID: 24589353
Patch description: "Database Release Update : 19.14.0.0.220118 (33515361)"
Created on 13 Jan 2022, 06:14:07 hrs UTC
Bugs fixed:
...
Patch 29585399 : applied on Thu Apr 18 09:21:33 CEST 2019
Unique Patch ID: 22840393
Patch description: "OCW RELEASE UPDATE 19.3.0.0.0 (29585399)"
Created on 9 Apr 2019, 19:12:47 hrs PST8PDT
Bugs fixed:
27222128, 27572040, 27604329, 27760043, 27877830, 28302580, 28470673
28621543, 28642469, 28699321, 28710663, 28755846, 28772816, 28785321
28800508, 28808652, 28815557, 28847541, 28847572, 28870496, 28871040
28874416, 28877252, 28881191, 28881848, 28888083, 28911140, 28925250
28925460, 28935956, 28940472, 3, 28942694, 28951332, 28963036, 28968779
28980448, 28995287, 29003207, 29003617, 29016294, 29018680, 29024876
29026154, 29027933, 29047127, 29052850, 29058476, 29111631, 29112455
29117337, 29123444, 29125708, 29125786, 29129476, 29131772, 29132456
29139727, 29146157, 29147849, 29149170, 29152603, 29152752, 29154631
29154636, 29154829, 29159216, 29159661, 29160462, 29161923, 29169540
29169739, 29170717, 29173618, 29181568, 29182920, 29183298, 29186091
29191827, 29201143, 29201695, 29209545, 29210577, 29210610, 29210624
29210683, 29213641, 29219627, 29224294, 29225861, 29229839, 29235934
29242906, 29243749, 29244495, 29244766, 29244968, 29248723, 29249583
29251564, 29255616, 29260224, 29261695, 29271019, 29273360, 29282090
29282666, 29285453, 29285621, 29290235, 29292232, 29293806, 29294753
29299830, 29307090, 29307109, 29311336, 29329675, 29330791, 29339299
29357821, 29360467, 29360775, 29367971, 29368725, 29379299, 29379381
29380527, 29381000, 29382296, 29391301, 29393649, 29402110, 29411931
29413360, 29457319, 29465047
--------------------------------------------------------------------------------
OPatch succeeded.
I cut off some parts from the output to make it easier to read. But you see what most of you know already: Even in an out-of-the-box vanilla 19c Oracle Database home, there is an OCW component installed. And like in my case, since I never took care, years later while my DB home is now 19.14.0, its OCW portion stays at year-old 19.3.0.
- Patch description: “OCW RELEASE UPDATE 19.3.0.0.0 (29585399)”
Should I worry?
I don’t think so since I don’t use any of the components. But if you think that I definitely should, please leave a comment. I’ll happily learn. In my quarterly blog posts such as the January 2022 one I never patched OCW before.
Which patch sh/would you download?
Next question is which patch I will need to download. But it should be the 19.14.0 Grid Infrastructure bundle patch from MOS Note: 2118136.2 – Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases.

Meanwhile the download progresses quickly I check the README.
It contains this table telling me that I should apply patch 33529556 to my “Oracle Home and Grid Home” which I read as “Oracle Home” potentially may be my “Database Home”?

Further down in the README I find this section:
where I’m getting asked to apply this patch:
cd <UNZIPPED_PATCH_LOCATION>/33509923/33515361 opatch apply
But don’t try this (at home) 🙂 Experts may immediately recognize that this is the standard Database 19.14.0 RU which I applied already to my home. But maybe the failure is on my side since I did download and apply the independent database 19.14.0 RU already instead of downloading the much bigger 33509923 GI 19.14.0 bundle. Hence, I don’t blame the README.
So I check the table above again where it says I should apply 33529556 to both, the Oracle home and the Grid home.
Let’s do this in the next step.
Applying Patch Bundle 33529556 to my database home
I save you reading time by just not posting the prechecks. Especially since these checks get performed again when I call opatch apply.
$ $OH19/OPatch/opatch apply Oracle Interim Patch Installer version 12.2.0.1.28 Copyright (c) 2022, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.28 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2022-02-07_09-04-02AM_1.log Verifying environment and performing prerequisite checks... Skip patch 33515361 from list of patches to apply: This patch is not needed. After skipping patches with missing components, there are no patches to apply. OPatch Session completed with warnings. Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2022-02-07_09-04-02AM_1.log OPatch completed with warnings. [CDB2] oracle@hol:~/33509923/33515361 $ cd .. [CDB2] oracle@hol:~/33509923 $ cd 33529556 [CDB2] oracle@hol:~/33509923/33529556 $ $OH19/OPatch/opatch apply Oracle Interim Patch Installer version 12.2.0.1.28 Copyright (c) 2022, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.28 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2022-02-07_09-10-47AM_1.log Verifying environment and performing prerequisite checks... -------------------------------------------------------------------------------- Start OOP by Prereq process. Launch OOP... Oracle Interim Patch Installer version 12.2.0.1.28 Copyright (c) 2022, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.28 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2022-02-07_09-17-02AM_1.log Verifying environment and performing prerequisite checks... OPatch continues with these patches: 33529556 Do you want to proceed? [y|n] y User Responded with: Y All checks passed. Please shutdown Oracle instances running out of this ORACLE_HOME on the local system. (Oracle Home = '/u01/app/oracle/product/19') Is the local system ready for patching? [y|n] y User Responded with: Y Backing up files... Applying interim patch '33529556' to OH '/u01/app/oracle/product/19' ApplySession: Optional component(s) [ oracle.has.crs.cvu, 19.0.0.0.0 ] , [ oracle.has.cvu, 19.0.0.0.0 ] , [ oracle.rhp.crs, 19.0.0.0.0 ] , [ oracle.has.crs, 19.0.0.0.0 ] , [ oracle.xag, 19.0.0.0.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.rdbms, 19.0.0.0.0... Patching component oracle.has.db.cvu, 19.0.0.0.0... Patching component oracle.has.db, 19.0.0.0.0... Patching component oracle.has.common, 19.0.0.0.0... Patching component oracle.has.rsf, 19.0.0.0.0... Patching component oracle.rhp.db, 19.0.0.0.0... Patching component oracle.rhp.common, 19.0.0.0.0... Patching component oracle.has.common.cvu, 19.0.0.0.0... Patch 33529556 successfully applied. Sub-set patch [29585399] has become inactive due to the application of a super-set patch [33529556]. Please refer to Doc ID 2161861.1 for any possible further required actions. Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2022-02-07_09-17-02AM_1.log OPatch succeeded.
Wow! That worked right out of the box.
But let us also check which components have been patched:
- RDBMS
- HAS (High Availability layer)
- RHP (Fleet Patching and Provisioning formerly known as Rapid Home Provisioning)
I wonder which patches are going into the oracle.rdbms component …
OPatch Check after patching
Of course I will call opatch lsinventory again.,
$ $OH19/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 12.2.0.1.28
Copyright (c) 2022, Oracle Corporation. All rights reserved.
Oracle Home : /u01/app/oracle/product/19
Central Inventory : /u01/app/oraInventory
from : /u01/app/oracle/product/19/oraInst.loc
OPatch version : 12.2.0.1.28
OUI version : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2022-02-07_09-56-38AM_1.log
Lsinventory Output file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/lsinv/lsinventory2022-02-07_09-56-38AM.txt
--------------------------------------------------------------------------------
Local Machine Information::
Hostname: hol
ARU platform id: 226
ARU platform description:: Linux x86-64
Installed Top-level Products (1):
Oracle Database 19c 19.0.0.0.0
There are 1 products installed in this Oracle Home.
Interim patches (3) :
Patch 33529556 : applied on Mon Feb 07 09:25:18 CET 2022
Unique Patch ID: 24583351
Patch description: "OCW RELEASE UPDATE 19.14.0.0.0 (33529556)"
Created on 9 Jan 2022, 21:15:36 hrs PST8PDT
Bugs fixed:
13742922, 17787434, 24611963, 24677421, 24943214, 25642320, 25736599
26305045, 26496292, 26615554, 26675491, 26813848, 26898787, 27092095
27148384, 27222128, 27262781, 27341142, 27505699, 27526265, 27572040
27604329, 27663388, 27760043, 27877830, 27912364, 27935374, 28107050
[.. hundreds of patch numbers cut out here ..]
33077135, 33083394, 33093153, 33114825, 33122355, 33123407, 33123522
33128879, 33129533, 33132334, 33141699, 33144621, 33145535, 33148406
33153370, 33161292, 33163031, 33168374, 33172512, 33174232, 33181968
33190595, 33196778, 33208212, 33213078, 33232179, 33300332, 33315862
33326399, 33330594, 33345311, 33360086, 33383972, 33406951, 33412603
33415331, 33446942, 33531173, 33545483, 33563477, 33731331, 3
Patch 33561310 : applied on Wed Jan 19 22:12:28 CET 2022
Unique Patch ID: 24538862
Patch description: "OJVM RELEASE UPDATE: 19.14.0.0.220118 (33561310)"
Created on 5 Jan 2022, 08:13:10 hrs UTC
Bugs fixed:
...
Patch 33515361 : applied on Wed Jan 19 21:37:55 CET 2022
Unique Patch ID: 24589353
Patch description: "Database Release Update : 19.14.0.0.220118 (33515361)"
Created on 13 Jan 2022, 06:14:07 hrs UTC
Bugs fixed:
...
--------------------------------------------------------------------------------
OPatch succeeded.
So you quickly figure out by comparing the OCW component “before” to “after” that there is now a significant number of several hundred additional OCW patches in your home.
Still, the question remains whether those are needed when you operate just a standard Oracle home.
Final thoughts
The final thoughts I’d like to share came up when I discussed this topic with Daniel.
If you assume that you must patch your database home not only with a database RU but also always with the clusterware RU, why is there still a separate database RU available for download? And if this is the case, why isn’t opatch not installing both in a non-GI home in one pass?
You see, there are still some open questions.
Final thoughts after final thoughts
Well, I would like to update this blog post with something I checked yesterday. I really was interested in which files get changed and adjusted in the rdbms layer when you apply the OCW RU to the DB home. So I ran the patch apply again and checked the log files afterwards:
[Feb 7, 2022 8:17:31 PM] [INFO] Patching component oracle.rdbms, 19.0.0.0.0...
[Feb 7, 2022 8:17:31 PM] [INFO] Copying file to "/u01/app/oracle/product/19/oui/jlib/srvm.jar"
[Feb 7, 2022 8:17:31 PM] [INFO] Copying file to "/u01/app/oracle/product/19/oui/jlib/srvmasm.jar"
[Feb 7, 2022 8:17:31 PM] [INFO] Entering OPatchUtilHelper::saveNewDirPS()
[Feb 7, 2022 8:17:31 PM] [INFO] Entering OPatchUtilHelper::saveNewDirPsRecursive()
[Feb 7, 2022 8:17:31 PM] [INFO] Just wrote: /u01/app/oracle/product/19/oui/lib/linux
to file: /u01/app/oracle/product/19/.patch_storage/newdirs.txt
[Feb 7, 2022 8:17:31 PM] [INFO] Entering OPatchUtilHelper::saveNewDirPsRecursive()
[Feb 7, 2022 8:17:31 PM] [INFO] Exiting OPatchUtilHelper::saveNewDirPsRecursive()
[Feb 7, 2022 8:17:31 PM] [INFO] Exiting OPatchUtilHelper::saveNewDirPS()
[Feb 7, 2022 8:17:31 PM] [INFO] Copying file to "/u01/app/oracle/product/19/oui/lib/linux/libsrvm19.so"
That’s it. And that’s not much.
But what is SRVM?
In the RAC Admin and Deploy Guide’s Glossary I found this section:
Server Control Utility (SRVCTL)
Server Management (SRVM) comprises the components required to operate Oracle Enterprise Manager in Oracle RAC. The SRVM components, such as the Intelligent Agent, Global Services Daemon, and SRVCTL, enable you to manage cluster databases running in heterogeneous environments through an open client/server architecture using Oracle Enterprise Manager.
As I neither use RHP/FPP or any of the HA components nor EM in my tiny little lab environments, I’m pretty certain that I won’t need the OCW bundle. But this may be different in your environments. And it doesn’t harm to apply it of course.
So you may decide whether the OCW bundle patch needs to be applied, or not.
Further Links and Information
- Patching all my environments with the January 2022 Bundle Patches
- MOS Note: 2118136.2 – Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases
- 19.14.0 GI Patch Bundle README
–Mike
Using the ‘slipstream’ method, this is what I did for the latest RU14
patch/RU14/33509923/33529556 << this is the Oracle OCW base patch from 19.3 to OCW RU14
patch/RU14/33509923/33515361 << this is the RU14 – RU itself
so the install command (with some other patches I wanted as well) was..
./runInstaller -applyRU patch/RU14/33509923/33515361 -applyOneOffs patch/RU14/33509923/33529556,patch/interim4/31327188,patch/interim5/33550827,patch/interim6/33457235,patch/interim7/32580378,patch/interim8/33121934
This is what I do as well usually – and it works perfectly well as long as you don’t add the OJVM bundle patch.
Cheers,
Mike
Hi
I wonder why Oracle does not ship the latest java with RUs?
Every time when I install RU patches, I have to upgrade java to the latest version manually.
Thanks
Hi Zulal,
I fully understand your point – and it mostly has to do with code freeze dates. Since the JDK is part of the regression testing, it is very complex to include the most recent version at a late stage. When the teams tried, it lead to real issues and delayed some RUs on some platforms. I see all the points, and I wish this would be easier – but it is unfortunately not that simple.
We still try to find a solution.
Cheers,
Mike
From memory the OCW-patch is needed for installation on new platforms, specifically the CVU-xml-files for the installer. The support for RHEL8/OL8 is added in OCW 19.9 IIRC. And maybe you need some extra OCW-patch once RHEL9/OL9 gets released.
This is a good point – I haven’t verified that.
Thanks Andreas!
Cheers,
Mike
Just to confirm this (over a year later – ha), we are in process of Rapid Cloning an EBS (R12.2.12) and DB (19.17c) from OL7 to OL8 and the latest Rapid Clone instructions (MOS DOC 2552208.1) sayS we must apply latest OCW (at least OCW 19.12 or later).
We aren’t using RAC or GRID so never thought bout OCW before now. They say OCW latest patches include the necessary updated .xml files to support OL8.
Thankfully I found this blog by Mike to give me insight into patch OCW. Thanks – Benny
Also not using RAC or GRID, and saw the same issue while using RapidClone on RHEL8 server.
This was direction from Oracle support:
” PRVF-7532 : Package “compat-libcap1” is missing on node “” ” is occurring due to the required 19.22 OCWRU or newer is missing from the Gold Image that is being used.
You may proceed with one of the following:
1. $ export CV_ASSUME_DISTID=RHLE7
2. Ignore any prerequisite rpm errors
–or–
Apply the 19.29 OCWRU into the Oracle Home prior to proceeding with Rapid Clone.
Patch 38298204: GI RELEASE UPDATE 19.29.0.0.0
Thanks, VK
Mike
Hi Mike, I have a question and a typical issue. I tried to apply GI patch in 1st node of 2-node RAC 19.3 version. opatchauto is not applying the patch in dbhome . Please note that I haven’t created any database using the dbhome. would that be the cause of not deploying the patch in db home of RAC?
I had to apply the patch separately in dbhome. is there any way to check if opatchauto has a bug?
Hi Surya,
I’m not a RAC/GI patching export unfortunately.
You may please need to open an SR and check with Support.
Thanks,
Mike
For reference…
19c Database Installation includes DBRU and OCWRU [2578032.1]
From Oracle 19c onwards, Database Updates and OCW Updates comes packed along with and gets applied when installation is done.
To make things more confusing:
How to apply OCW Release Update patches on db_home non-RAC / non-ASM (Doc ID 2970542.1)
The following paragraph:
Is it or not necessary to apply OCW patches on my ORACLE_HOME even if I don’t use ASM, RAC or CLUSTERWARE?
It is optional, but even if no GI Stack (ASM, Clusterware or RAC) is used inside the server, it is recommended NOT to ignore the security patches of the installed components. And apply the most recent OCW Patch.
Seems the OCW RU should be included in your patch cycle even on a stand-alone installation
Hi P. Musolf,
I am still in doubt. But the official stance is: “Yes”. When you look into the inventory of a vanilla 19c installation, you will see that 19.3.0 OCW patch has been applied to it and delivered. I still would say, unless you are doing Oracle Restart or RAC One Node or RAC, you won’t need it. But for completeness and some interesting VTKM fixes, it is not clear whether you would really need it even in a plain single instance database home environment.
Cheers,
Mike
Hi Mike
I hope you’re doing well.
Mike, we are patching one of our Oracle databases which been install top of an Oracle Restart. We are facing the below issue. I’m wondering if you can help us with that. I know the GI patch contains the OCW but I don’t know why I’m getting that error. I couldn’t find which file is looking in the error log.
Cheers,
Masoud
$ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config /home/oracle/autoupgrade-patching/patch_DAV1.cfg -patch -mode analyze
AutoUpgrade Patching 25.3.250509 launched with default internal options
Processing config file …
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore is loaded
Connected to MOS – Searching for specified patches
————————————————————
Downloading files to /db/archive_logs/CDS/archive_logs/stage
————————————————————
DATABASE RELEASE UPDATE 19.27.0.0.0
File: p37642901_190000_AIX64-5L.zip – LOCATED
DATAPUMP BUNDLE PATCH 19.27.0.0.0
File: p37777295_1927000DBRU_Generic.zip – LOCATED
GI RELEASE UPDATE 19.27.0.0.0
File: p37641958_190000_AIX64-5L.zip – LOCATED
OJVM RELEASE UPDATE 19.27.0.0.0
File: p37499406_190000_AIX64-5L.zip – LOCATED
OPatch 12.2.0.1.46 for DB 19.0.0.0.0 (Apr 2025)
File: p6880880_190000_AIX64-5L.zip – LOCATED
————————————————————
There were conditions found preventing AutoUpgrade Patching from successfully running
*Validating Oracle Patch files
An OCW patch file is not found in /db/archive_logs/CDS/archive_logs/stage for 19.27 RU for the job with prefix patch1
Hi Massoud,
we need an SR, please.
Can you upload the logs collected with:
java -jar autoupgrade.jar -config yourconfig -zip
and send me the SR number?
Thanks,
Mike