Adding the Oracle 19.14.0 OCW / GI bundle patch to my database home

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.

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.

Adding the Oracle 19.14.0 OCW / GI bundle patch to my database home

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”?

Adding the Oracle 19.14.0 OCW / GI bundle patch to 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

–Mike

Share this: