DST Time Zone Patch V.32 and V.33 for Oracle 18.5.0

If you’d ever attended one of Roy’s or my workshops, you know that we talk about time zone adjustments after the database upgrade. We explain why this is important. But as everything, it depends if you really need to apply and adjust. In our workshops we recommend one single note for time zone adjustments: MOS Note:412160.1 . This note has been updated and republished. It contains DST V.32 and DST V.33 links and references. Amit Grover from AWS contacted me and told me about a potential dependency of DST patches to the Oracle Update such as RU 18.4.0 or 18.5.0.

DST Time Zone Patch V.32 and V.33 for Oracle 18.5.0

Photo by Luis Cortes on Unsplash

As I wasn’t aware, I started digging deeper.

Time Zone Patches DST V.32 and DST V.33

First of all, you need the patches:

  • DST V.32: patch 28125601
  • DST V.33: patch 28852325

Even though the content of a time zone patch consists basically of two files: timezlrg_32.dat and timezone_32.dat which get stored in $ORACLE_HOME/oracore/zoneinfo there’s a difference between Little Endian and Big Endian platforms. But apart from that there shouldn’t be any dependency on any patch bundle. The files look the same, regardless if you look at them in Oracle 12.2.0.1 or any Oracle 18c drop.

But anyhow, the patch download displays for DST V.32:

And for DST V.33:

The download at least seems to fit only for one DB RU. But what if you use Oracle 18.3.0 or Oracle 18.5.0 but would like to apply the DST V.33 patch?

Safety First: Conflict Check

My setup: 18.3.0 vanilla installation on Linux x86-64.

  • Conflict Check for DST V.32:
    $ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /media/sf_TEMP/28125601
    Oracle Interim Patch Installer version 12.2.0.1.14
    Copyright (c) 2019, Oracle Corporation.  All rights reserved.
    
    PREREQ session
    
    Oracle Home       : /u01/app/oracle/product/18
    Central Inventory : /u01/app/oraInventory
       from           : /u01/app/oracle/product/18/oraInst.loc
    OPatch version    : 12.2.0.1.14
    OUI version       : 12.2.0.4.0
    Log file location : /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-01-31_12-27-37PM_1.log
    
    Invoking prereq "checkconflictagainstohwithdetail"
    
    Prereq "checkConflictAgainstOHWithDetail" passed.
    
    OPatch succeeded.
  • Conflict Check for DST V.33:
    $ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /media/sf_TEMP/28852325
    Oracle Interim Patch Installer version 12.2.0.1.14
    Copyright (c) 2019, Oracle Corporation.  All rights reserved.
    
    PREREQ session
    
    Oracle Home       : /u01/app/oracle/product/18
    Central Inventory : /u01/app/oraInventory
       from           : /u01/app/oracle/product/18/oraInst.loc
    OPatch version    : 12.2.0.1.14
    OUI version       : 12.2.0.4.0
    Log file location : /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-01-31_12-45-51PM_1.log
    
    Invoking prereq "checkconflictagainstohwithdetail"
    
    Prereq "checkConflictAgainstOHWithDetail" failed.
    
    The details are:
    Interim patch 28852325  requires prerequisite patch(es) [28655784] which are not present in the Oracle Home.
    Apply prerequisite patch(es) [28655784] before applying interim patch 28852325.
    Summary of Conflict Analysis:
    
    There are no patches that can be applied now.
    
    
    OPatch succeeded.

No issues here with DST V32 on Oracle 18.3.0. But there seems to be a dependency in DST V.33 as it warns me:

The details are: Interim patch 28852325 requires prerequisite patch(es) [28655784]
which are not present in the Oracle Home. Apply prerequisite patch(es) [28655784] before 
applying interim patch 28852325.

Strange. It basically says, apply the 18.4.0 RU first before applying DST V.33.

Let’s Apply

Applying the DST V.32 patch works flawless. I won’t copy&paste the output here.

But applying DST V.33 to an Oracle 18.3.0 environment failed:

$ $ORACLE_HOME/OPatch/opatch prereq apply
Oracle Interim Patch Installer version 12.2.0.1.14
Copyright (c) 2019, Oracle Corporation.  All rights reserved.

PREREQ session
Syntax Error... Unrecognized prereq check.

Please use the option 'opatch prereq -help' to get correct syntax

OPatch failed with error code 14
[CDB2] oracle@localhost:/media/sf_TEMP/28852325
$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.14
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/18
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/18/oraInst.loc
OPatch version    : 12.2.0.1.14
OUI version       : 12.2.0.4.0
Log file location : /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-01-31_12-47-29PM_1.log

Verifying environment and performing prerequisite checks...



UtilSession failed: Interim patch 28852325  requires prerequisite patch(es) [28655784] which are not present in the Oracle Home.
Apply prerequisite patch(es) [28655784] before applying interim patch 28852325.
Log file location: /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-01-31_12-47-29PM_1.log

OPatch failed with error code 73

What does "Interim patch 28852325 requires prerequisite patch(es) [28655784] which are not present in the Oracle Home." mean?

Checking patch 28655784 in MOS:

It is the October 2018 Release Update. That does not make any sense here as a time zone file is 100% independent of the patch bundle as far as I know. And if there’s a conflict, the conflict check should have told me before.

I’m puzzled. And now I understand the issue Amit told me about. Even opatch apply -force_conflict fails with the same error 73.

Trying the same with Oracle 18.5.0

Then I changed my setup and applied 18.5.0 to my database home. Just for the record: I always use the single patch bundles, never the combo ones for my single instance homes.

Conflict Check:

  • DST V.32: Ok!
  • DST V.33: Interesting result as above:
    $ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /media/sf_TEMP/28852325
    Oracle Interim Patch Installer version 12.2.0.1.14
    Copyright (c) 2019, Oracle Corporation.  All rights reserved.
    
    PREREQ session
    
    Oracle Home       : /u01/app/oracle/product/18
    Central Inventory : /u01/app/oraInventory
       from           : /u01/app/oracle/product/18/oraInst.loc
    OPatch version    : 12.2.0.1.14
    OUI version       : 12.2.0.4.0
    Log file location : /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-01-31_13-01-13PM_1.log
    
    Invoking prereq "checkconflictagainstohwithdetail"
    
    Prereq "checkConflictAgainstOHWithDetail" failed.
    
    The details are:
    Interim patch 28852325  requires prerequisite patch(es) [28655784] which are not present in the Oracle Home.
    Apply prerequisite patch(es) [28655784] before applying interim patch 28852325.
    Summary of Conflict Analysis:
    
    There are no patches that can be applied now.
    
    
    OPatch succeeded.

Ok, I can foresee what happens when I try to apply them. At least I thought. My guess would have been: DST V.32 applies fine but DST V.33 will fail.

Well …

The Results: DST V.32 and V.33 in Oracle 18.5.0

I didn’t expect this but it happens – and makes no sense to me.

Applying DST V.32 to Oracle 18.5.0

Even though the conflict check passed flawless, applying the patch to Oracle 18.5.0 fails:

$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.14
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/18
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/18/oraInst.loc
OPatch version    : 12.2.0.1.14
OUI version       : 12.2.0.4.0
Log file location : /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-01-31_13-03-21PM_1.log

Verifying environment and performing prerequisite checks...
Prerequisite check "CheckPatchApplyDependents" failed.
The details are:
Interim patch 28125601 requires prerequisite patch(es) [ 28090523 ] which are not present in the Oracle Home.
Apply prerequisite patch(es) [ 28090523 ] before applying interim patch 28125601 .
UtilSession failed: Prerequisite check "CheckPatchApplyDependents" failed.
Log file location: /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-01-31_13-03-21PM_1.log

OPatch failed with error code 73

Ah … OPatch error code 73 is my favorite …

Applying DST V.33 to Oracle 18.5.0

In this case I expected it failing as the conflict check had raised an issue already:

$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.14
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/18
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/18/oraInst.loc
OPatch version    : 12.2.0.1.14
OUI version       : 12.2.0.4.0
Log file location : /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-01-31_13-07-17PM_1.log

Verifying environment and performing prerequisite checks...



UtilSession failed: Interim patch 28852325  requires prerequisite patch(es) [28655784] which are not present in the Oracle Home.
Apply prerequisite patch(es) [28655784] before applying interim patch 28852325.
Log file location: /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-01-31_13-07-17PM_1.log

OPatch failed with error code 73

Not cool.

Summary

I don’t know what has happened. But it seems that somebody has made the time zone patches now dependent on a specific release update. And if that is not present, a new time zone patch is requested. The same thing would apply with Revisions as well of course as the DST patch seems to request an exact patch to be present – otherwise it will fail.

To me this makes not much sense. And as far as I remember, this has been different before. You used one DST patch for instance for Oracle 12.2.0.1 and it worked for all RUs. But I’m neither working on DST patches nor on opatch. Amit has logged an SR and I will watch closely.

I will keep you updated.

Further Information

–Mike

Share this: