Patching all my environments with the April 2020 Patch Bundles

My quarterly routine happens when the new security alerts get published. And it is time again. I’ll show you as usual how Patching all my environments with the April 2020 Patch Bundles works.

Patching all my environments with the April 2020 Patch Bundles

Photo by Kristin Brown on Unsplash

Security Alert April 2020

Let’s start with the Security Alerts for April 2020. It leads me to the April 2020 Critical Patch Advisory. I’m a database guy, so I’m interested in: Oracle Database Server, versions 11.2.0.4, 12.1.0.2, 12.2.0.1, 18c, 19c. And this link brings me directly to the Risk Matrix for the database products.

You will spot three >7 CVE score issues, one of them in the usual OJVM vulnerability. Basically for me this means: You must apply it if you have either OJVM and/or Oracle Multimedia installed. But there are more very important fixes included.

Patching all my environments with the April 2020 Patch Bundles

Oracle Database Server Risk Matrix – April 2020

The next click on Database brings me directly into MOS Note: 2633852.1 – Critical Patch Update (CPU) Program Apr 2020 Patch Availability Document. Section 3.1.4 covers the database patch downloads.

I download the following patch bundles:

  • Oracle Database 19c
  •  Oracle Database 12.2.0.1
  • Oracle Database 11.2.0.4 (non-Engineered System => PSU!)

Do I need a new OPatch?

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

  • 19.7.0 requires opatch 12.2.0.1.19 or later
  • 12.2.0.1 requires opatch 12.2.0.1.19 or later
  • 11.2.0.4 requires opatch 11.2.0.3.23 or later

So there has been a change to the previous patch round in January.

With $ORACLE_HOME/OPatch/opatch version I can quickly check whether I need to refresh my opatch installations. And Jackpot! I have 11.2.0.3.21 in my 11.2.0.4 home, and 12.2.0.1.17 in both, my 12.2.0.1 and my 19.6.0 homes. As the link to the patch magically disappeared from the 11.2.0.4 Readme, I use the other ones: patch 6880880. Oh, how much I like this chaos in the download screen for OPatch. Every time I ask myself why this can’t be cleaned up. Well, I blogged about this a long while ago already.

So basically, I wipe out my current OPatch directories in all my three homes. And once the new OPatch bundles have been unzipped, I can proceed. The 12.2.0.1.19 OPatch needs to go into both, the 12.2.0.1 and the 19c home.

And thanks to Miguel Anjo (see the comments section) for pointing me to this issue with the current OPatch mentioned in the  OPatch README:

CUSTOMERS ARE REQUESTED NOT TO RUN CLEANUP UTILITY COMMAND (./opatch util cleanup)
AS THE CLEANUP UTILITY HAS A BUG WHICH MAY POTENTIALLY DELETE SYSTEM FILES.

AFFECTED OPATCH RELEASES : 12.2.0.1.19 / 11.2.0.3.23
FIX WILL BE AVAILABLE IN RELEASE : 12.2.0.1.21/11.2.0.3.25 (Last week of April 2020)

Note: No other opatch functionalities are impacted and customers can continue to use.

Applying RU 19.7.0 to my 19c home

As usual, at first I apply 19.7.0 to my existing Oracle 19c home (currently at 19.6.0).

After I unzipped the patch into a separate directory, I run:

  1. opatch conflict check
    $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
    Oracle Interim Patch Installer version 12.2.0.1.19
    Copyright (c) 2020, 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.19
    OUI version       : 12.2.0.7.0
    Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2020-04-15_00-07-38AM_1.log
    
    Invoking prereq "checkconflictagainstohwithdetail"
    
    Prereq "checkConflictAgainstOHWithDetail" passed.
    
    OPatch succeeded.
    [CDB2] oracle@hol:~/30869156
    
  2. opatch apply
    $ORACLE_HOME/OPatch/opatch apply
    Oracle Interim Patch Installer version 12.2.0.1.19
    Copyright (c) 2020, 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.19
    OUI version       : 12.2.0.7.0
    Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2020-04-15_00-08-43AM_1.log
    
    Verifying environment and performing prerequisite checks...
    
    --------------------------------------------------------------------------------
    Start OOP by Prereq process.
    Launch OOP...
    
    Oracle Interim Patch Installer version 12.2.0.1.19
    Copyright (c) 2020, 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.19
    OUI version       : 12.2.0.7.0
    Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2020-04-15_00-09-19AM_1.log
    
    Verifying environment and performing prerequisite checks...
    OPatch continues with these patches:   30869156  
    
    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 = '/u01/app/oracle/product/19')
    
    
    Is the local system ready for patching? [y|n]
    Y (auto-answered by -silent)
    User Responded with: Y
    Backing up files...
    Applying interim patch '30869156' 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.tfa, 19.0.0.0.0 ] , [ oracle.oraolap.mgmt, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.options.olap.awm, 19.0.0.0.0 ] , [ oracle.sqlj, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.assistants.asm, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.xdk.parser.java.jaxb2, 19.0.0.0.0 ] , [ oracle.assistants.usm, 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.rsf, 19.0.0.0.0...
    
    Patching component oracle.rdbms, 19.0.0.0.0...
    
    ...
    
    Patching component oracle.precomp.common, 19.0.0.0.0...
    
    Patching component oracle.nlsrtl.rsf.core, 19.0.0.0.0...
    
    Patching component oracle.perlint, 5.28.1.0.0...
    
    Patching component oracle.precomp.lang, 19.0.0.0.0...
    
    Patching component oracle.jdk, 1.8.0.201.0...
    Patch 30869156 successfully applied.
    Sub-set patch [30557433] has become inactive due to the application of a super-set patch [30869156].
    Please refer to Doc ID 2161861.1 for any possible further required actions.
    Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2020-04-15_00-09-19AM_1.log
    
    OPatch succeeded.
    [CDB2] oracle@hol:~/30869156
    

    As final action, I will start my database and all pluggable databases again. The next step, datapatch, requires my databases and PDBs to be open.

  3. datapatch
    $ORACLE_HOME/OPatch/datapatch -verbose
    SQL Patching tool version 19.7.0.0.0 Production on Wed Apr 15 00:14:23 2020
    Copyright (c) 2012, 2020, Oracle.  All rights reserved.
    
    Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_18226_2020_04_15_00_14_23/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.7.0.0.0 Release_Update 200404035018: Installed
      PDB CDB$ROOT:
        Applied 19.6.0.0.0 Release_Update 191217155004 successfully on 21-JAN-20 09.23.28.157993 PM
      PDB PDB$SEED:
        Applied 19.6.0.0.0 Release_Update 191217155004 successfully on 21-JAN-20 09.23.29.338333 PM
    
    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 30869156 (Database Release Update : 19.7.0.0.200414 (30869156)):
          Apply from 19.6.0.0.0 Release_Update 191217155004 to 19.7.0.0.0 Release_Update 200404035018
        No interim patches need to be applied
    
    Installing patches...
    Patch installation complete.  Total patches installed: 2
    
    Validating logfiles...done
    Patch 30869156 apply (pdb CDB$ROOT): SUCCESS
      logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30869156/23493838/30869156_apply_CDB2_CDBROOT_2020Apr15_00_16_11.log (no errors)
    Patch 30869156 apply (pdb PDB$SEED): SUCCESS
      logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30869156/23493838/30869156_apply_CDB2_PDBSEED_2020Apr15_00_17_02.log (no errors)
    SQL Patching tool complete on Wed Apr 15 00:17:57 2020
    [CDB2] oracle@hol:~/30869156
    

Applying RU 12.2.0.1.200414 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

Applying PSU 11.2.0.4.200414 to my Oracle 11.2 home

For Oracle 11.2 I can only take the PSU. Bundle patches (BP) in Oracle 11.2 were only meant for Exadata systems. But the path to apply them is the same as for later bundles.

Again, 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 (FTEX and UPGR).

  3. catbundle.sql
    Final steps is “catbudle.sql”. It requires the databases to be up and running.

    cd $ORACLE_HOME/rdbms/admin
    sqlplus / as sysdba
    @?/rdbms/admin/catbundle.sql psu apply

Everything fine now. No major issues seen. But as you know, my environment is simple and doesn’t include RAC or standbys.

Microsoft Windows

Since some of you commented, either here on the blog or on Twitter, I realized as well that all the Windows Bundle Patches are missing right now. I can’t tell you why that is. And I see as well that none of them – except the 11.2.0.4 ones – is mentioned in the section 2.2 of MOS Note: 2633852.1. I fully understand when you get angry about this. But you have to raise your voice to your Oracle contacts about this please. And open SRs.

More Information and Links

–Mike

 

Share this: