Patching all my environments with the January 2021 Patch Bundles

Groundhog day on the upgrade blog. It’s time for my quaterly Patching all my environments with the January 2021 Patch Bundles blog post. And still no RAC and ASM. Sorry for that … too many virtual events and other tasks since months unfortunately.

Patching all my environments with the January 2021 Patch Bundles

Photo by Bofu Shaw on Unsplash

As usual, an important annotation upfront: I patch in-place due to space issues. But in reality, you please patch always out-of-place with a separate home. Please see this blog post about how to apply the RU directly when you provision a new home with OUI.

Security Alert January 2021

Find the Security Alert for January 2021 here. And don’t forget to take a look at the Oracle Database Server Risk Matrix for January 2021. It is relatively short this time but unfortunately lists a 8.8 score with the RDBMS Scheduler.

Patching all my environments with the January 2021 Patch Bundles

Oracle Database Server Risk Matrix January 2021

Still, the list is much shorter than the one from October 2020.

Database Patch Bundles

You will find the links to the individual patch bundles in MOS Note: 2725756.1 – Critical Patch Update (CPU) Program Jan 2021 Patch Availability Document (PAD). And please note that a patch number in the document does not necessarily mean that your patch is available already. Please find a discussion about this recurring topic here: Why is the release update not available on my platform yet? Check especially the Section 2.2 (Post Release Patches).

  • Oracle Database 19c
    • Database Release Update 19.10.0.0.210119 Patch 32218454 for UNIX (1.4GB on Linux)
    • Readme
    • List of fixes: MOS Note: 2523220.1 (as usual, it does not include any 19.10.0 fixes while I write this blog post unfortunately)
  • Oracle Database 12.2.0.1
  • Oracle Database 11.2.0.4
    • Ups … yes, there is no patch bundle for 11.2.0.4 anymore.
      That is correct. You may be aware that 11.2.0.4 went out of Extended Support on Dec 31, 2020.
      If you still need bug fixing support for Oracle 11.2.0.4, then please check out the Market Driven Support offering.

No news as MOS Note: 2118136.2 – Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases hasn’t been updated yet with the links for the January 2021 bundles by the time I write this.

Do I need a new OPatch?

First check while the download is progressing: Do I need to refresh my OPatch versions?

  • 19.10.0 requires opatch 12.2.0.1.23 or later
  • 12.2.0.1 requires opatch 12.2.0.1.23 or later

In my case I need to update opatch in both homes. But I realize also that the opatch download has been simplified. So your feedback was heard. Just choose “19.0.0.0.0” version and you get the Nov 2020 Opatch:

Patching all my environments with the January 2021 Patch Bundles

Download OPatch via: 6880880. Wipe out your current OPatch directories in your homes. Once you unzip the new OPatch bundles. you can proceed.

Applying RU 19.10.0 to my 19c home

At first, I unzip the patch into a separate directory and place myself into this directory ~/31741641 .

  1. patch conflict check
    $ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
    Oracle Interim Patch Installer version 12.2.0.1.23
    Copyright (c) 2021, Oracle Corporation.  All rights reserved.
    
    PREREQ session
    
    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.23
    OUI version       : 12.2.0.7.0
    Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2021-01-20_00-46-32AM_1.log
    
    Invoking prereq "checkconflictagainstohwithdetail"
    
    Prereq "checkConflictAgainstOHWithDetail" passed.
    
    OPatch succeeded.
    
  2. opatch apply
    [CDB2] oracle@hol:~/patch/32218454
    $ $ORACLE_HOME/OPatch/opatch apply
    Oracle Interim Patch Installer version 12.2.0.1.23
    Copyright (c) 2021, 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.23
    OUI version       : 12.2.0.7.0
    Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2021-01-20_00-50-39AM_1.log
    
    Verifying environment and performing prerequisite checks...
    OPatch continues with these patches:   32218454  
    
    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 '32218454' to OH '/u01/app/oracle/product/19'
    ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.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.rdbms.rsf, 19.0.0.0.0...
    
    Patching component oracle.rdbms.util, 19.0.0.0.0...
    
    Patching component oracle.assistants.acf, 19.0.0.0.0...
    
    Patching component oracle.assistants.deconfig, 19.0.0.0.0...
    
    Patching component oracle.assistants.server, 19.0.0.0.0...
    
    Patching component oracle.buildtools.rsf, 19.0.0.0.0...
    
    Patching component oracle.ctx, 19.0.0.0.0...
    
    Patching component oracle.dbjava.ic, 19.0.0.0.0...
    
    Patching component oracle.dbjava.jdbc, 19.0.0.0.0...
    
    Patching component oracle.dbjava.ucp, 19.0.0.0.0...
    
    Patching component oracle.dbtoolslistener, 19.0.0.0.0...
    
    Patching component oracle.ldap.owm, 19.0.0.0.0...
    
    Patching component oracle.ldap.rsf, 19.0.0.0.0...
    
    Patching component oracle.network.rsf, 19.0.0.0.0...
    
    Patching component oracle.oracore.rsf, 19.0.0.0.0...
    
    Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...
    
    Patching component oracle.rdbms.deconfig, 19.0.0.0.0...
    
    Patching component oracle.sdo, 19.0.0.0.0...
    
    Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...
    
    Patching component oracle.sqlplus, 19.0.0.0.0...
    
    Patching component oracle.xdk, 19.0.0.0.0...
    
    Patching component oracle.marvel, 19.0.0.0.0...
    
    Patching component oracle.xdk.rsf, 19.0.0.0.0...
    
    Patching component oracle.ctx.atg, 19.0.0.0.0...
    
    Patching component oracle.rdbms.scheduler, 19.0.0.0.0...
    
    Patching component oracle.rdbms.lbac, 19.0.0.0.0...
    
    Patching component oracle.duma, 19.0.0.0.0...
    
    Patching component oracle.ldap.rsf.ic, 19.0.0.0.0...
    
    Patching component oracle.odbc, 19.0.0.0.0...
    
    Patching component oracle.ctx.rsf, 19.0.0.0.0...
    
    Patching component oracle.oraolap.api, 19.0.0.0.0...
    
    Patching component oracle.xdk.parser.java, 19.0.0.0.0...
    
    Patching component oracle.oraolap, 19.0.0.0.0...
    
    Patching component oracle.sdo.locator, 19.0.0.0.0...
    
    Patching component oracle.sqlplus.ic, 19.0.0.0.0...
    
    Patching component oracle.mgw.common, 19.0.0.0.0...
    
    Patching component oracle.ons, 19.0.0.0.0...
    
    Patching component oracle.dbdev, 19.0.0.0.0...
    
    Patching component oracle.network.listener, 19.0.0.0.0...
    
    Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...
    
    Patching component oracle.ovm, 19.0.0.0.0...
    
    Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...
    
    Patching component oracle.xdk.xquery, 19.0.0.0.0...
    
    Patching component oracle.precomp.rsf, 19.0.0.0.0...
    
    Patching component oracle.javavm.client, 19.0.0.0.0...
    
    Patching component oracle.precomp.common.core, 19.0.0.0.0...
    
    Patching component oracle.ldap.security.osdt, 19.0.0.0.0...
    
    Patching component oracle.rdbms.oci, 19.0.0.0.0...
    
    Patching component oracle.rdbms.rman, 19.0.0.0.0...
    
    Patching component oracle.rdbms.crs, 19.0.0.0.0...
    
    Patching component oracle.rdbms.install.common, 19.0.0.0.0...
    
    Patching component oracle.javavm.server, 19.0.0.0.0...
    
    Patching component oracle.rdbms.drdaas, 19.0.0.0.0...
    
    Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...
    
    Patching component oracle.rdbms.dv, 19.0.0.0.0...
    
    Patching component oracle.ldap.client, 19.0.0.0.0...
    
    Patching component oracle.network.client, 19.0.0.0.0...
    
    Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...
    
    Patching component oracle.precomp.common, 19.0.0.0.0...
    
    Patching component oracle.precomp.lang, 19.0.0.0.0...
    
    Patching component oracle.jdk, 1.8.0.201.0...
    Patch 32218454 successfully applied.
    Sub-set patch [31771877] has become inactive due to the application of a super-set patch [32218454].
    Please refer to Doc ID 2161861.1 for any possible further required actions.
    Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2021-01-20_00-50-39AM_1.log
    
    OPatch succeeded.
  3. datapatch

    Don’t forget to startup all your PDBs before invoking datapatch.
    [CDB2] oracle@hol:~/patch/32218454
    $ $ORACLE_HOME/OPatch/datapatch -verbose
    SQL Patching tool version 19.10.0.0.0 Production on Wed Jan 20 01:00:14 2021
    Copyright (c) 2012, 2020, Oracle.  All rights reserved.
    
    Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_19749_2021_01_20_01_00_14/sqlpatch_invocation.log
    
    Connecting to database...OK
    Gathering database info...done
    
    Note:  Datapatch will only apply or rollback SQL fixes for PDBs
           that are in an open state, no patches will be applied to closed PDBs.
           Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
           (Doc ID 1585822.1)
    
    Bootstrapping registry and package to current versions...done
    Determining current state...done
    
    Current state of interim SQL patches:
      No interim patches found
    
    Current state of release update SQL patches:
      Binary registry:
        19.10.0.0.0 Release_Update 210108185017: Installed
      PDB CDB$ROOT:
        Applied 19.9.0.0.0 Release_Update 200930183249 successfully on 21-OCT-20 11.56.37.379130 AM
      PDB PDB$SEED:
        Applied 19.9.0.0.0 Release_Update 200930183249 successfully on 21-OCT-20 11.56.37.581802 AM
    
    Adding patches to installation queue and performing prereq checks...done
    Installation queue:
      For the following PDBs: CDB$ROOT PDB$SEED
        No interim patches need to be rolled back
        Patch 32218454 (Database Release Update : 19.10.0.0.210119 (32218454)):
          Apply from 19.9.0.0.0 Release_Update 200930183249 to 19.10.0.0.0 Release_Update 210108185017
        No interim patches need to be applied
    
    Installing patches...
    Patch installation complete.  Total patches installed: 2
    
    Validating logfiles...done
    Patch 32218454 apply (pdb CDB$ROOT): SUCCESS
      logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/32218454/24018797/32218454_apply_CDB2_CDBROOT_2021Jan20_01_00_45.log (no errors)
    Patch 32218454 apply (pdb PDB$SEED): SUCCESS
      logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/32218454/24018797/32218454_apply_CDB2_PDBSEED_2021Jan20_01_02_28.log (no errors)
    SQL Patching tool complete on Wed Jan 20 01:04:03 2021
    

Everything looks good.

Finally I just check quickly the contents of the CDB_REGISTRY_SQLPATCH view:

    CON_ID ACTION_TIME		  PATCH_ID PATCH_TYPE ACTION	 DESCRIPTION						SOURCE_VERSI TARGET_VERSI
---------- -------------------- ---------- ---------- ---------- ------------------------------------------------------ ------------ ------------
	 1 2019-04-28		  29517242 RU	      APPLY	 Database Release Update : 19.3.0.0.190416 (29517242)	19.1.0.0.0   19.3.0.0.0
	 1 2019-10-16		  30125133 RU	      APPLY	 Database Release Update : 19.5.0.0.191015 (30125133)	19.3.0.0.0   19.5.0.0.0
	 1 2020-01-21		  30557433 RU	      APPLY	 Database Release Update : 19.6.0.0.200114 (30557433)	19.5.0.0.0   19.6.0.0.0
	 1 2020-04-15		  30869156 RU	      APPLY	 Database Release Update : 19.7.0.0.200414 (30869156)	19.6.0.0.0   19.7.0.0.0
	 1 2020-07-15		  31281355 RU	      APPLY	 Database Release Update : 19.8.0.0.200714 (31281355)	19.7.0.0.0   19.8.0.0.0
	 1 2020-10-21		  31771877 RU	      APPLY	 Database Release Update : 19.9.0.0.201020 (31771877)	19.8.0.0.0   19.9.0.0.0
	 1 2021-01-20		  32218454 RU	      APPLY	 Database Release Update : 19.10.0.0.210119 (32218454)	19.9.0.0.0   19.10.0.0.0
	 2 2019-04-28		  29517242 RU	      APPLY	 Database Release Update : 19.3.0.0.190416 (29517242)	19.1.0.0.0   19.3.0.0.0
	 2 2019-10-16		  30125133 RU	      APPLY	 Database Release Update : 19.5.0.0.191015 (30125133)	19.3.0.0.0   19.5.0.0.0
	 2 2020-01-21		  30557433 RU	      APPLY	 Database Release Update : 19.6.0.0.200114 (30557433)	19.5.0.0.0   19.6.0.0.0
	 2 2020-04-15		  30869156 RU	      APPLY	 Database Release Update : 19.7.0.0.200414 (30869156)	19.6.0.0.0   19.7.0.0.0
	 2 2020-07-15		  31281355 RU	      APPLY	 Database Release Update : 19.8.0.0.200714 (31281355)	19.7.0.0.0   19.8.0.0.0
	 2 2020-10-21		  31771877 RU	      APPLY	 Database Release Update : 19.9.0.0.201020 (31771877)	19.8.0.0.0   19.9.0.0.0
	 2 2021-01-20		  32218454 RU	      APPLY	 Database Release Update : 19.10.0.0.210119 (32218454)	19.9.0.0.0   19.10.0.0.0

14 rows selected.

Applying RU 12.2.0.1.210119 to my 12.2.0.1 home

I won’t copy/paste all steps as the output is similar to the above.

  1. opatch conflict check
    $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
  2. opatch apply
    $ORACLE_HOME/OPatch/opatch apply

    Then I will need to startup my databases and all PDBs.

  3. datapatch -verbose
    Final steps is “datapatch”. It requires the databases and all its PDBs to be up and running.

    $ORACLE_HOME/OPatch/datapatch -verbose

No issues seen. All worked fine. But there is more to come. My databases have OJVM – and I will patch it tomorrow.

Addition Mar 2, 2021

Frits Hogland raised and issue to Anil Nair, our RAC PM an myself wondering why applying the Jan 2021 Grid Infrastructure (GI) RU adds a strange name to the inventory. As Frits demonstrated:

Before Patching

[oracle ~]$  /u01/app/19.0.0/grid/OPatch/opatch lspatches -oh /u01/app/oracle/product/19.0.0/db_1
31305087;OCW RELEASE UPDATE 19.8.0.0.0 (31305087)
31281355;Database Release Update : 19.8.0.0.200714 (31281355)

After Patching

[oracle ~]$ $ORACLE_HOME/OPatch/opatch lspatches -oh /u01/app/oracle/product/19.0.0/db_1
32222571;OCW Interim patch for 32222571
32218454;Database Release Update : 19.10.0.0.210119 (32218454)

Anil investigated and we both learned that this was known already but internally we took a decision to not reupload the entire RU for GI. Hence, no issue with this since the patch number is correct and guides you to the RU and not a one-off or interim patch of course. With 19.11.0 this shouldn’t happen again.

Addition Apr 12, 2021

Several people reported issued when trying to apply this RU on IBM AIX. It leads to a Java Nullpointer Exception. This is an issue which is described here:

MOS Note: 2756755.1 – AIX OPatch 12.2.0.1.24 Version Fails with “Opatchcore binary error message=Assertion” and “VMState: 0x0005ff0a”

Workaround is to use a previous version of opatch which is linked from MOS Note: 2756755.1.

More Information and Links

–Mike

Share this: