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
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.