Patching all my environments with the January 2020 Patch Bundles

I was traveling last week and had not enough time to download and apply the January 2020 Release Updates and PSUs. Yes, I’m one week late. But nevertheless, I’d like to check whether patching my databases with the January 2020 RUs will work fine.

Patching all my environments with the January 2020 Patch Bundles

Wörthsee near Munich in January 2020 – Water temperature is 3.4°C

Security Alert January 2020

My usual approach is to start with the Security Alerts for January 2020. It leads me to the January 2020 Critical Patch Advisory. As I’m a database guy, this is the line 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 four >7 CVE score issues, two of them in the Core RDBMS, and the usual OJVM vulnerability. Basically for me this means: You must apply it. Security is the most important topic.

Patching all my environments with the January 2020 Patch Bundles

My next click on Database directs me to MOS Note: 2602410.1 – Critical Patch Update (CPU) Program Jan 2020 Patch Availability Document. This is the document containing the links to download the patch bundles. Section 3.1.4 is the overview about Database Patch Bundles for each release.

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 I’m doing once the download is running: Do I need to refresh my OPatch versions?

  • 19.6.0 requires opatch 12.2.0.1.17 or later
  • 12.2.0.1 requires opatch 12.2.0.1.13 or later
  • 11.2.0.4 requires opatch 11.2.0.3.20 or later

Quick check with opatch version in all my three homes. Everything ok. Otherwise I would have to download and refresh opatch via patch 6880880. My 11.2 home has opatch “21”, the 19c and the 12.2.0.1 home both use the “17” version. All set.

Applying RU 19.6.0 to my 19c home

At first I apply 19.6.0 to my existing Oracle 19c home (currently at 19.5.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.17
    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.17
    OUI version       : 12.2.0.7.0
    Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2020-01-21_21-04-06PM_1.log
    
    Invoking prereq "checkconflictagainstohwithdetail"
    
    Prereq "checkConflictAgainstOHWithDetail" passed.
    
    OPatch succeeded.
    [CDB2] oracle@hol:~/30557433
    
  2. opatch apply
    $ $ORACLE_HOME/OPatch/opatch apply
    Oracle Interim Patch Installer version 12.2.0.1.17
    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.17
    OUI version       : 12.2.0.7.0
    Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2020-01-21_21-05-18PM_1.log
    
    Verifying environment and performing prerequisite checks...
    Prerequisite check "CheckSystemSpace" failed.
    The details are:
    Required amount of space(4575.498MB) is not available.
    UtilSession failed: 
    Prerequisite check "CheckSystemSpace" failed.
    Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2020-01-21_21-05-18PM_1.log
    
    OPatch failed with error code 73

    Uhh … I know that I don’t have a lot of disk space available but why does a 1GB sized patch request almost 5GB of free space. I don’t like such surprises. These make patching such a relaxing fun experience.

    I clean up all my .patch_storage directories manually to free space. All together I can get rid of 2GB. And interestingly enough, once I do this, opatch doesn’t complain anymore about 4.6 GB not being available. Well …

    $ $ORACLE_HOME/OPatch/opatch apply
    Oracle Interim Patch Installer version 12.2.0.1.17
    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.17
    OUI version       : 12.2.0.7.0
    Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2020-01-21_21-12-23PM_1.log
    
    Verifying environment and performing prerequisite checks...
    OPatch continues with these patches:   30557433  
    
    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 '30557433' 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 ] , 
    
    ...
    
    Patching component oracle.xdk, 19.0.0.0.0...
    
    Patching component oracle.xdk.parser.java, 19.0.0.0.0...
    
    Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...
    
    Patching component oracle.precomp.lang, 19.0.0.0.0...
    
    Patching component oracle.precomp.common, 19.0.0.0.0...
    
    Patching component oracle.jdk, 1.8.0.201.0...
    Patch 30557433 successfully applied.
    Sub-set patch [30125133] has become inactive due to the application of a super-set patch [30557433].
    Please refer to Doc ID 2161861.1 for any possible further required actions.
    Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2020-01-21_21-12-23PM_1.log
    
    OPatch succeeded.
    

    The note mentioned as well that the JDK will be updated. That’s a good thing – but it makes the patch apply taking a bit longer, at least in my environment. I get some CPU spikes but this may have to do with my VBox environment.

    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.6.0.0.0 Production on Tue Jan 21 21:20:48 2020
    Copyright (c) 2012, 2019, Oracle.  All rights reserved.
    
    Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_16010_2020_01_21_21_20_48/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.6.0.0.0 Release_Update 191217155004: Installed
      PDB CDB$ROOT:
        Applied 19.5.0.0.0 Release_Update 190909180549 successfully on 16-OCT-19 07.42.14.875068 PM
      PDB PDB$SEED:
        Applied 19.5.0.0.0 Release_Update 190909180549 successfully on 16-OCT-19 07.42.15.686615 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 30557433 (Database Release Update : 19.6.0.0.200114 (30557433)):
          Apply from 19.5.0.0.0 Release_Update 190909180549 to 19.6.0.0.0 Release_Update 191217155004
        No interim patches need to be applied
    
    Installing patches...
    Patch installation complete.  Total patches installed: 2
    
    Validating logfiles...done
    Patch 30557433 apply (pdb CDB$ROOT): SUCCESS
      logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30557433/23305305/30557433_apply_CDB2_CDBROOT_2020Jan21_21_22_01.log (no errors)
    Patch 30557433 apply (pdb PDB$SEED): SUCCESS
      logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30557433/23305305/30557433_apply_CDB2_PDBSEED_2020Jan21_21_22_52.log (no errors)
    SQL Patching tool complete on Tue Jan 21 21:23:34 2020
    

Applying RU 12.2.0.1.200114 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.200114 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.

  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 from a colleague I received an email about some issues patching a RAC environment. I will update you once I find out if it isn’t just a singular issue.

Further Information and Links

–Mike

Share this: