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.

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
- Does the PDB$SEED get time zone patched or not?
- Create a database with non-default time zone
- MOS Note:412160.1 – Download newest DST patches
–Mike
Hi Mike,
are there any news about that topic? I’m still wondering about it because I have to deinstall and install DST patch for every RU again and again…
Cheers
Kay.
Hi Kay,
I apply them as well but I don’t have to remove the patches when I apply a new RU – at least not in 19c.
Can you share more information please?
Cheers,
Mike
Hi Mike,
I have upgraded a database from 12.2.0.1 to 19.6. with oneoff 29997937 (DST V37) installed. Now I want to install 19.7. and opatchauto wants me to deinstall 29997937 first:
“Subset Patch 30869156 has Subset Patch 30557433 which has overlay patches [29997937] and these overlay patches confict with Superset Patch”
However, there is no DST V37 for 19.7. downloadable in MOS. I would say I can deinstall 29997937 because new timezone data was already applied during upgrade.
Cheers
Kay.
Kay,
do you have an SR? If not, please do me a favor and open one and upload the logs.
Then send me the SR number and I will follow up internally.
Otherwise I would need to reproduce the case which will cost me two hours of install gymnastics …
Thanks š
Mike
PS: And to be clear, this shouldn’t be the case. But there seem to be sometime people who still haven’t understood the release model … argh š
Ahm, no, this is too late. I have already deinstalled DST V37 and installed 19.7., so no chance for logfiles. I can collect some logs when I’m on production in a couple of weeks. I’m just wondering that there is no DST patch for 19.7. and I hope I don’t need it any more.
No worries, Kay.
I will see if I can repro this quickly from 19.9.0 to 19.10.0 – those are the two home I have here.
Cheers,
Mike
by the way, if there is no need for RU specific DST patches in 19.x: why are there DST patches for 19.4/5/6/8/9/10 … if I got you right there has to one single patch for 19.x…?
I’m curious about what happens in your setup. š