What about client patching?

2024-12-16 Off By Markus Flechtner

Every now and then, there’s a question in the My Oracle Support Community:, especially after a new Release Update has been released: “How can I patch my Oracle client?” or “Where can I find the patches for my Oracle client?”. Let’s take a look at this issue.

TL;DR: Patching an Oracle client is as simple as patching an Oracle database server: you can use (basically) the same patches and apply the same procedure.

Let’s start with the second question: How can I find the patches for my Oracle client?

You can find the latest Release Update (RU) via the MOS note “Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases (Doc ID 2118136.2)”. Another way is to start with the overview on the Critical Patch Updates (CPUs) (https://www.oracle.com/security-alerts/) which leads you to latest CPUs. From there, the next step is the corresponding “Oracle Critical Patch Update Advisory” and then to the “Patch availability document” for the database.

What’s the current situation on my server?

My server is running on Linux for Arm64.
Oracle Database 19c 19.19 was the first release of the Oracle database for this platform and there are no patches applied:

[oracle@abel ~]$ echo $ORACLE_HOME
/opt/oracle/product/19c-client/
[oracle@abel ~]$ $ORACLE_HOME/OPatch/opatch lspatches
There are no Interim patches installed in this Oracle Home "/opt/oracle/product/19c-client".

OPatch succeeded.

By checking the latest “Patch availability document” for Oracle Database 19c (which is “Critical Patch Update (CPU) Program Oct 2024 Patch Availability Document (DB-only) (Doc ID 3036945.1)” for the time being) you can find out, which patches are client-applicable:

Screenshot

So we need patch 36582781 (Database Release Update) and patch 36538667 (JDK update, for more information on the JDK patches, please see the post by Mike Dietrich “Why isn’t the newest JDK in this Oracle Release Update?“). And we need patch 6880880 to update OPatch to the latest version.

So my staging directory contains the following 3 files:

[oracle@abel stage]$ ls -al
total 1346744
drwxrwxr-x.  2 grid   oinstall        135 Dec 15 23:54 .
drwxrwxr-x. 12 oracle oinstall        149 Nov 16 09:21 ..
-rwxr-xr-x.  1 oracle oinstall   55175050 Dec 15 23:54 p36866578_190000_Linux-ARM-64-jdk.zip
-rw-r--r--.  1 oracle oinstall 1252859642 Dec 15 23:54 p36912597_190000_Linux-ARM-64-db.zip
-rwxr-xr-x.  1 oracle oinstall   71025347 Dec 15 23:54 p6880880_190000_Linux-ARM-64.zip

Lets’s start with upgrading OPatch:

[oracle@abel stage]$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.old

[oracle@abel stage]$ unzip -q p6880880_190000_Linux-ARM-64.zip -d $ORACLE_HOME/.

[oracle@abel stage]$ $ORACLE_HOME/OPatch/opatch version
#OPatch Version: 12.2.0.1.44

OPatch succeeded.

The next step is to install the RU for the database

[oracle@abel stage]$ unzip -q p36912597_190000_Linux-ARM-64-db.zip
[oracle@abel stage]$ cd 36912597/
[oracle@abel 36912597]$ $ORACLE_HOME/OPatch/opatch apply -silent
Oracle Interim Patch Installer version 12.2.0.1.44
Copyright (c) 2024, Oracle Corporation.  All rights reserved.


Oracle Home       : /opt/oracle/product/19c-client
Central Inventory : /opt/oracle/../oraInventory
   from           : /opt/oracle/product/19c-client//oraInst.loc
OPatch version    : 12.2.0.1.44
OUI version       : 12.2.0.7.0
Log file location : /opt/oracle/product/19c-client/cfgtoollogs/opatch/opatch2024-12-15_23-59-31PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   36912597

Do you want to proceed? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/opt/oracle/product/19c-client')

Is the local system ready for patching? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
Backing up files...
Applying interim patch '36912597' to OH '/opt/oracle/product/19c-client'
[...]
Patching component oracle.jdk, 1.8.0.371.11...
Patch 36912597 successfully applied.
Log file location: /opt/oracle/product/19c-client/cfgtoollogs/opatch/opatch2024-12-15_23-59-31PM_1.log

OPatch succeeded.

Patching an Oracle client is much faster than patching the RDBMS software because there are less components to patch.

If you want to update the JDK in your client home to the latest JDK version, you have to install the RU for the JDK. That’s our next step:

[oracle@abel stage]$ unzip -q p36866578_190000_Linux-ARM-64-jdk.zip
[oracle@abel stage]$ cd 36866578/[oracle@abel 36866578]$ $ORACLE_HOME/OPatch/opatch apply -silent
Oracle Interim Patch Installer version 12.2.0.1.44
Copyright (c) 2024, Oracle Corporation.  All rights reserved.


Oracle Home       : /opt/oracle/product/19c-client
Central Inventory : /opt/oracle/../oraInventory
   from           : /opt/oracle/product/19c-client//oraInst.loc
OPatch version    : 12.2.0.1.44
OUI version       : 12.2.0.7.0
Log file location : /opt/oracle/product/19c-client/cfgtoollogs/opatch/opatch2024-12-16_00-02-27AM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   36866578

Do you want to proceed? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
All checks passed.
Backing up files...
Applying interim patch '36866578' to OH '/opt/oracle/product/19c-client' 
[...]
Patch 36866578 successfully applied.
Log file location: /opt/oracle/product/19c-client/cfgtoollogs/opatch/opatch2024-12-16_00-02-27AM_1.log

OPatch succeeded.

Let’s check the result:

[oracle@abel ~]$ echo $ORACLE_HOME
/opt/oracle/product/19c-client/
[oracle@abel ~]$ $ORACLE_HOME/OPatch/opatch lspatches
36866578;JDK BUNDLE PATCH 19.0.0.0.241015
36912597;Database Release Update : 19.25.0.0.241015 (36912597)

OPatch succeeded.

That’s it. Patching an Oracle Client is as easy as patching the Oracle Database software, but it’s faster and there are less patches to apply.