{"id":295,"date":"2021-11-04T10:14:47","date_gmt":"2021-11-04T09:14:47","guid":{"rendered":"https:\/\/ptdb.ch\/?p=295"},"modified":"2021-11-04T10:14:47","modified_gmt":"2021-11-04T09:14:47","slug":"how-to-upgrade-the-timezone-version-on-an-upgraded-oracle-12cr2-to-19c-cdb-with-pdbs-from-tz-version-26-to-36","status":"publish","type":"post","link":"https:\/\/ptdb.ch\/?p=295","title":{"rendered":"How To Upgrade The TimeZone Version On An Upgraded Oracle 12cR2 To 19c CDB With PDB\u2019s From TZ Version 26 to 36"},"content":{"rendered":"<p>Recently, I did an upgrade from Oracle 12cR2 to 19c (RU12). It is an CDB with one PDB. One of the last steps after upgrading the database is to bring the time zone to the latest version.<\/p>\n<p>Why do I need time zone updates at all? Because nothing is more constant than the changes. And one of those are the time zone changes. Some countries remove the summer\/winter time changes, and some new time zones appear, which have never existed beforehand. In case you want to see all changes, since Oracle has implemented the time zone changes, take a look into the Oracle 19c readme file which is located in the $ORACLE_HOME\/oracore\/zoneinfo\/ directory<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ cat $ORACLE_HOME\/oracore\/zoneinfo\/readme.txt | more\nCurrent Structure version: 3\nCurrent Content Version  :32\n\nContent Version 31\n------------------\nTimezones updated:\nDSTVERSION TIME_ZONE_NAME FROM_YEAR TO_YEAR\n32, Africa\/Bissau, 1912,\n32, Africa\/Windhoek, 1994,\n32, Africa\/Sao_Tome, 1800,\n32, America\/Jamaica, 1800, 1912\n32, America\/Grand_Turk, 1890, 1912\n...\n...\n------ End of updates in Content version 32 ----\n\n\nCurrent Structure version: 3\nCurrent Content Version  :31\n\nContent Version 31\n------------------\nTimezones updated:\nDSTVERSION TIME_ZONE_NAME FROM_YEAR TO_YEAR\n31, Africa\/Windhoek, 1994, 1994\n31, Africa\/Windhoek, 2017,\n31, Africa\/Khartoum, 2017,\n31, America\/Juneau, 1867, 1867\n31, America\/Yakutat, 1867, 1867\n...\n...\n------ End of updates in Content version 31 ----\n\nCurrent Structure version: 3\nCurrent Content Version  :30\n\nContent Version 30\n------------------\nTimezones updated:\nDSTVERSION TIME_ZONE_NAME FROM_YEAR TO_YEAR\n30, Africa\/Monrovia, 1972,\n30, Africa\/Ceuta, 1901, 1928\n30, America\/Port-au-Prince, 2017,\n30, America\/Guayaquil, 1992,\n30, America\/Guyana, 1966,\n30, America\/Paramaribo, 1975,\n30, Antarctica\/Palmer, 2016,\n...\n...\n<\/pre>\n<p>In case you want to know more about time zones, you might want to take a look at the following web sites.<\/p>\n<p><a href=\"https:\/\/www.iana.org\/time-zones\">https:\/\/www.iana.org\/time-zones<\/a><\/p>\n<p><a href=\"https:\/\/tools.ietf.org\/html\/rfc6557\">https:\/\/tools.ietf.org\/html\/rfc6557<\/a><\/p>\n<p>First of all, we need to check the current time zone version that we already have. Since this was an upgrade from 12cR2 to 19c, it should be the old time zone version from the 12cR2 database.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\nSQL&gt; SELECT version FROM v$timezone_file;\n\n   VERSION\n----------\n        26\n\n<\/pre>\n<p>The version FROM v$timezone_file should match the DST_PRIMARY_TT_VERSION value found when selecting from DATABASE_PROPERTIES<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; set linesize 144\nSQL&gt; col PROPERTY_NAME format a44\nSQL&gt; col VALUE format a8\nSQL&gt; SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value\n  2  FROM DATABASE_PROPERTIES\n  3  WHERE PROPERTY_NAME LIKE 'DST_%'\n  4  ORDER BY PROPERTY_NAME;\n\nPROPERTY_NAME                                VALUE\n-------------------------------------------- --------\nDST_PRIMARY_TT_VERSION                       26\nDST_SECONDARY_TT_VERSION                     0\nDST_UPGRADE_STATE                            NONE\n\nSQL&gt;\n<\/pre>\n<p>However, we want to go to time zone version 36. So lets see what we got in $ORACLE_HOME\/oracore\/zoneinfo\/ directory.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ cd $ORACLE_HOME\/oracore\/zoneinfo\/\n\n$ ls\nbig              timezlrg_13.dat  timezlrg_1.dat   timezlrg_26.dat  timezlrg_32.dat  timezlrg_9.dat   timezone_16.dat  timezone_22.dat  timezone_29.dat  timezone_5.dat\nlittle           timezlrg_14.dat  timezlrg_20.dat  timezlrg_27.dat  timezlrg_3.dat   timezone_10.dat  timezone_17.dat  timezone_23.dat  timezone_2.dat   timezone_6.dat\nreadme.txt       timezlrg_15.dat  timezlrg_21.dat  timezlrg_28.dat  timezlrg_4.dat   timezone_11.dat  timezone_18.dat  timezone_24.dat  timezone_30.dat  timezone_7.dat\ntimezdif.csv     timezlrg_16.dat  timezlrg_22.dat  timezlrg_29.dat  timezlrg_5.dat   timezone_12.dat  timezone_19.dat  timezone_25.dat  timezone_31.dat  timezone_8.dat\ntimezlrg_10.dat  timezlrg_17.dat  timezlrg_23.dat  timezlrg_2.dat   timezlrg_6.dat   timezone_13.dat  timezone_1.dat   timezone_26.dat  timezone_32.dat  timezone_9.dat\ntimezlrg_11.dat  timezlrg_18.dat  timezlrg_24.dat  timezlrg_30.dat  timezlrg_7.dat   timezone_14.dat  timezone_20.dat  timezone_27.dat  timezone_3.dat\ntimezlrg_12.dat  timezlrg_19.dat  timezlrg_25.dat  timezlrg_31.dat  timezlrg_8.dat   timezone_15.dat  timezone_21.dat  timezone_28.dat  timezone_4.dat\n<\/pre>\n<p>At the moment, we got only the time zone version 32 shipped with the default 19c installation.<\/p>\n<p>The general steps for upgrading to a new time zone version are:<\/p>\n<ol>\n<li>Take a RMAN full backup<\/li>\n<li>Create a guaranteed restore point<\/li>\n<li>Shutdown the application<\/li>\n<li>Apply the time zone patch<\/li>\n<li>Run the check and upgrade scripts for the CDB<\/li>\n<li>Run the check and upgrade scripts for the PDB\u2019s<\/li>\n<li>Start the application<\/li>\n<\/ol>\n<p>In this blog, I will not go into detail regarding RMAN or Flashback database. I will cover here only step 4,5 and 6.<\/p>\n<p>Ok. Lets start by downloading the following patch and apply it to the 19c Oracle Home.<\/p>\n<p><strong>Patch 32327201: RDBMS &#8211; DSTV36 UPDATE &#8211; TZDATA2020E<\/strong><\/p>\n<p>The patch just includes the following files which are copied to the $ORACLE_HOME\/oracore\/zoneinfo\/ directory.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ unzip p32327201_190000_Linux-x86-64.zip\nArchive:  p32327201_190000_Linux-x86-64.zip\n   creating: 32327201\/\n   creating: 32327201\/files\/\n   creating: 32327201\/files\/oracore\/\n   creating: 32327201\/files\/oracore\/zoneinfo\/\n  inflating: 32327201\/files\/oracore\/zoneinfo\/timezone_36.dat\n   creating: 32327201\/files\/oracore\/zoneinfo\/big\/\n  inflating: 32327201\/files\/oracore\/zoneinfo\/big\/timezone_36.dat\n  inflating: 32327201\/files\/oracore\/zoneinfo\/big\/timezlrg_36.dat\n   creating: 32327201\/files\/oracore\/zoneinfo\/little\/\n  inflating: 32327201\/files\/oracore\/zoneinfo\/little\/timezlrg_36.dat\n  inflating: 32327201\/files\/oracore\/zoneinfo\/little\/timezone_36.dat\n  inflating: 32327201\/files\/oracore\/zoneinfo\/timezlrg_36.dat\n  inflating: 32327201\/files\/oracore\/zoneinfo\/readme_36.txt\n  inflating: 32327201\/README.txt\n   creating: 32327201\/etc\/\n   creating: 32327201\/etc\/config\/\n  inflating: 32327201\/etc\/config\/actions.xml\n  inflating: 32327201\/etc\/config\/inventory.xml\n$ cd 32327201\/\n$ ls -l\ntotal 8\ndrwxr-x---. 3 oracle dba   20 Feb  2  2021 etc\ndrwxr-x---. 3 oracle dba   21 Feb  2  2021 files\n-rw-rw-r--. 1 oracle dba 5790 Feb  2  2021 README.txt\n<\/pre>\n<p><strong>HINT: This patch can be applied online without taking the database down.<\/strong><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ $ORACLE_HOME\/OPatch\/opatch apply 32327201\nOracle Interim Patch Installer version 12.2.0.1.27\nCopyright (c) 2021, Oracle Corporation.  All rights reserved.\n\nOracle Home       : \/usr\/oraprod\/db\/19.12.0.0.210720A\nCentral Inventory : \/usr\/oraprod\/oraInventory\n   from           : \/usr\/oraprod\/db\/19.12.0.0.210720A\/oraInst.loc\nOPatch version    : 12.2.0.1.27\nOUI version       : 12.2.0.7.0\nLog file location : \/usr\/oraprod\/db\/19.12.0.0.210720A\/cfgtoollogs\/opatch\/opatch2021-11-04_08-43-49AM_1.log\n\nVerifying environment and performing prerequisite checks...\nOPatch continues with these patches:   32327201\n\nDo you want to proceed? &#x5B;y|n]\ny\nUser Responded with: Y\nAll checks passed.\nBacking up files...\nApplying interim patch '32327201' to OH '\/usr\/oraprod\/db\/19.12.0.0.210720A'\n\nPatching component oracle.oracore.rsf, 19.0.0.0.0...\nPatch 32327201 successfully applied.\nLog file location: \/usr\/oraprod\/db\/19.12.0.0.210720A\/cfgtoollogs\/opatch\/opatch2021-11-04_08-43-49AM_1.log\n\nOPatch succeeded.\n\n$ $ORACLE_HOME\/OPatch\/opatch lsinv | grep 32327201\nPatch  32327201     : applied on Thu Nov 04 08:44:14 CET 2021\n     32327201\n<\/pre>\n<p>After we successfully applied the patch, we can see a few more files in the $ORACLE_HOME\/oracore\/zoneinfo\/ directory. The important one for me is timezone_36.dat.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ ls\nbig              timezlrg_13.dat  timezlrg_20.dat  timezlrg_28.dat  timezlrg_4.dat   timezone_12.dat  timezone_1.dat   timezone_27.dat  timezone_3.dat\nlittle           timezlrg_14.dat  timezlrg_21.dat  timezlrg_29.dat  timezlrg_5.dat   timezone_13.dat  timezone_20.dat  timezone_28.dat  timezone_4.dat\nreadme_36.txt    timezlrg_15.dat  timezlrg_22.dat  timezlrg_2.dat   timezlrg_6.dat   timezone_14.dat  timezone_21.dat  timezone_29.dat  timezone_5.dat\nreadme.txt       timezlrg_16.dat  timezlrg_23.dat  timezlrg_30.dat  timezlrg_7.dat   timezone_15.dat  timezone_22.dat  timezone_2.dat   timezone_6.dat\ntimezdif.csv     timezlrg_17.dat  timezlrg_24.dat  timezlrg_31.dat  timezlrg_8.dat   timezone_16.dat  timezone_23.dat  timezone_30.dat  timezone_7.dat\ntimezlrg_10.dat  timezlrg_18.dat  timezlrg_25.dat  timezlrg_32.dat  timezlrg_9.dat   timezone_17.dat  timezone_24.dat  timezone_31.dat  timezone_8.dat\ntimezlrg_11.dat  timezlrg_19.dat  timezlrg_26.dat  timezlrg_36.dat  timezone_10.dat  timezone_18.dat  timezone_25.dat  timezone_32.dat  timezone_9.dat\ntimezlrg_12.dat  timezlrg_1.dat   timezlrg_27.dat  timezlrg_3.dat   timezone_11.dat  timezone_19.dat  timezone_26.dat  timezone_36.dat\n<\/pre>\n<p>Starting with 18c (and this applies of course to 19c as well), you will find a few new time zone related scripts in the $ORACLE_HOME\/rdbms\/admin directory.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ cd $ORACLE_HOME\/rdbms\/admin\n$ ls | grep utltz_\nutltz_countstar.sql\nutltz_countstats.sql\nutltz_upg_apply.sql\nutltz_upg_apply_sys.sql\nutltz_upg_apply_user.sql\nutltz_upg_check.sql\n<\/pre>\n<p>However, in case you are still on 12cR2 or 12cR1 you might want to download the scripts from the following MOS Note:<\/p>\n<ul>\n<li>Scripts to automatically update the RDBMS DST (timezone) version in an 11gR2 or 12c database . (Doc ID 1585343.1)<\/li>\n<\/ul>\n<p>Which is, DBMS_DST_scriptsV1.9 at the time of writing.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ unzip DBMS_DST_scriptsV1.9.zip\nArchive:  DBMS_DST_scriptsV1.9.zip\n   creating: DBMS_DST_scriptsV1.9\/\n  inflating: DBMS_DST_scriptsV1.9\/countstarTSTZ.sql\n  inflating: DBMS_DST_scriptsV1.9\/countstatsTSTZ.sql\n  inflating: DBMS_DST_scriptsV1.9\/upg_tzv_apply.sql\n  inflating: DBMS_DST_scriptsV1.9\/upg_tzv_check.sql\n<\/pre>\n<p>I am going to use the supplied scripts which are shipped with 19c, because they include the latest fixes, especially regarding PDB\u2019s.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ cat utltz_upg_check.sql | more\nRem\nRem $Header: rdbms\/admin\/utltz_upg_check.sql \/st_rdbms_19\/3 2021\/03\/07 08:43:28 huagli Exp $\nRem\nRem utltz_upg_check.sql\nRem\nRem Copyright (c) 2017, 2021, Oracle and\/or its affiliates.\nRem All rights reserved.\nRem\nRem    NAME\nRem      utltz_upg_check.sql - TIME ZONE Upgrade Check Script\nRem                            (for 11gR2 or higher)\nRem\nRem    DESCRIPTION\nRem      This script prepares a database to update the database to the highest\nRem      installed timezone definitions using the utltz_upg_apply.sql script.\nRem\nRem    NOTES\nRem      * This script must be run using SQL*PLUS from the database home.\nRem      * This script must be connected AS SYSDBA to run.\nRem      * The database need to be 11.2.0.1 or higher.\nRem      * The database will NOT be restarted .\nRem      * NO downtime is needed for this script.\nRem      * This script takes no arguments.\nRem      * This script WILL exit SQL*PLUS when an error is detected\nRem      * The dba_recyclebin WILL be purged.\nRem      * This script will check for all known issues at time of last update.\nRem      * An UPG_TZV table will be created.\nRem      * TZ_VERSION in Registry$database will be updated with current version.\nRem      * The utltz_upg_apply.sql script depends on this script.\nRem      * The script will write a line into the alert.log when ending successfully.\nRem\nRem    BEGIN SQL_FILE_METADATA\nRem    SQL_SOURCE_FILE: rdbms\/admin\/utltz_upg_check.sql\nRem    SQL_SHIPPED_FILE: rdbms\/admin\/utltz_upg_check.sql\nRem    SQL_PHASE: UPGRADE\nRem    SQL_STARTUP_MODE: NORMAL\nRem    SQL_IGNORABLE_ERRORS: NONE\nRem    SQL_CALLING_FILE:\nRem    END SQL_FILE_METADATA\nRem\nRem    MODIFIED   (MM\/DD\/YY)\nRem    apfwkr      01\/04\/21 - Backport\nRem                           apfwkr_blr_backport_30681085_19.7.0.0.200414dbru\nRem                           from st_rdbms_19.7.0.0.0dbru\nRem    apfwkr      11\/19\/20 - Backport yuanzhou_bug-30681085 from main\nRem    yuanzhou    12\/18\/19 - 30681085: use parallel in FIND_AFFECTED_TABLES\nRem    huagli      08\/31\/17 - 26721930: DB version change\nRem    huagli      06\/09\/17 - 25988996: CDB\/PDB RAC check and various cleanup\nRem    huagli      04\/07\/17 - 25856520: handle PDB name correctly\nRem    huagli      01\/31\/17 - renamed to utltz_upg_check.sql and added to shiphome\nRem    gvermeir    08\/22\/14 - updated to handle CDB\/PDB (Multitenant) DST updates\nRem    gvermeir    07\/10\/14 - changed 1882 in DST$ERROR_TABLE from error to warning\nRem    gvermeir    05\/23\/14 - changed detection of Bug 14732853 to avoid using DBA_TSTZ_TAB_COLS\nRem    gvermeir    03\/17\/14 - logging of time makes more sense in minutes\nRem    gvermeir    03\/04\/14 - known bug detection is now faster on some dbs\nRem    gvermeir    02\/20\/14 - added logging to alert.log\nRem    gvermeir    12\/23\/13 - minor changes on error handling\nRem    gvermeir    09\/20\/13 - enhanced error checking and handling\nRem    gvermeir    06\/12\/13 - enhanced storing of found result\nRem    gvermeir    06\/07\/13 - corrected check for bug 14732853\nRem    gvermeir    05\/16\/13 - Additional check added\/typos fixed\nRem    gvermeir    05\/13\/13 - Initial internal release\nRem    gvermeir    04\/23\/13 - created\nRem\n...\n...\n...\n<\/pre>\n<p>The scripts supplied with the DBMS_DST_scriptsV1.9.zip, do not contain the latest fixes from 2017.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ cat upg_tzv_check.sql\n...\n...\nRem  MODIFIED (MM\/DD\/YY)\nRem     gvermeir  08\/22\/14 - updated to handle CDB\/PDB (Multitenant) DST updates\nRem     gvermeir  07\/10\/14 - changed 1882 in DST$ERROR_TABLE from error to warning\nRem     gvermeir  05\/23\/14 - changed detection of Bug 14732853 to avoid using DBA_TSTZ_TAB_COLS\nRem     gvermeir  03\/17\/14 - logging of time makes more sense in minutes\nRem     gvermeir  03\/04\/14 - known bug detection is now faster on some dbs\nRem     gvermeir  02\/20\/14 - added logging to alert.log\n...\n...\n<\/pre>\n<p>Now \u2026 be careful. The next steps require a downtime. It is not possible to upgrade a TZ without a downtime. Only the TZ patch itself can be applied online.<\/p>\n<p>Before we run the TZ upgrade scripts, you might want to purge the Scheduler History and the DBMS_STATS history, to speed up the TZ Upgrade. These steps are optional.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; EXEC DBMS_SCHEDULER.PURGE_LOG;\n \nPL\/SQL procedure successfully completed.\n \nSQL&gt; EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(0);\n \nPL\/SQL procedure successfully completed.\n \nSQL&gt; EXEC DBMS_STATS.PURGE_STATS(SYSTIMESTAMP);\n \nPL\/SQL procedure successfully completed.\n \n--\n-- Do the TZ Upgrade.\n--\n  \nSQL&gt; EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(31);\n \nPL\/SQL procedure successfully completed.\n<\/pre>\n<p>Now we do the Time Zone Upgrade on the CDB 19.12.0.0.0 database.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ sqh\n\nSQL*Plus: Release 19.0.0.0.0 - Production on Thu Nov 4 08:57:23 2021\nVersion 19.12.0.0.0\n\nCopyright (c) 1982, 2021, Oracle.  All rights reserved.\n\nConnected to:\nOracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production\nVersion 19.12.0.0.0\n\nSQL&gt; select version from v$timezone_file;\n\n   VERSION\n----------\n        26\n\nSQL&gt;\n<\/pre>\n<p>Do the upgrade check and apply the Timezone Patch for Version 36 afterwards. In case the check shows any errors in the alert.log, you should stop here and fix the issue first.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ ls | grep utltz_\nutltz_countstar.sql\nutltz_countstats.sql\nutltz_upg_apply.sql\nutltz_upg_apply_sys.sql\nutltz_upg_apply_user.sql\nutltz_upg_check.sql\n\n$ sqh\n\nSQL*Plus: Release 19.0.0.0.0 - Production on Thu Nov 4 09:00:26 2021\nVersion 19.12.0.0.0\n\nCopyright (c) 1982, 2021, Oracle.  All rights reserved.\n\nConnected to:\nOracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production\nVersion 19.12.0.0.0\n\nSQL&gt; @utltz_upg_check.sql\n\nSession altered.\n\nINFO: Starting with RDBMS DST update preparation.\nINFO: NO actual RDBMS DST update will be done by this script.\nINFO: If an ERROR occurs the script will EXIT sqlplus.\nINFO: Doing checks for known issues ...\nINFO: Database version is 19.0.0.0 .\nINFO: This database is a Multitenant database.\nINFO: Current container is CDB$ROOT .\nINFO: Updating the RDBMS DST version of the CDB \/ CDB$ROOT database\nINFO: will NOT update the RDBMS DST version of PDB databases in this CDB.\nWARNING: There are 1 open PDBs .\nWARNING: They will be closed when running utltz_upg_apply.sql .\nINFO: Database RDBMS DST version is DSTv26 .\nINFO: No known issues detected.\nINFO: Now detecting new RDBMS DST version.\nA prepare window has been successfully started.\nINFO: Newest RDBMS DST version detected is DSTv36 .\nINFO: Next step is checking all TSTZ data.\nINFO: It might take a while before any further output is seen ...\nA prepare window has been successfully ended.\nINFO: A newer RDBMS DST version than the one currently used is found.\nINFO: Note that NO DST update was yet done.\nINFO: Now run utltz_upg_apply.sql to do the actual RDBMS DST update.\nINFO: Note that the utltz_upg_apply.sql script will\nINFO: restart the database 2 times WITHOUT any confirmation or prompt.\n\nSession altered.\n\nSQL&gt;\n<\/pre>\n<p>In the alert log you will see the following entries:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n...\n2021-11-04T09:01:02.146023+01:00\nutltz_upg_check sucessfully found newer RDBMS DSTv36 and took 0 minutes to run.\n...\n<\/pre>\n<p>Run the upgrade now \u2026\u00a0 and be careful, this script will restart the database 2 times.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; @utltz_upg_apply.sql\n\nSession altered.\n\nINFO: If an ERROR occurs, the script will EXIT SQL*Plus.\nINFO: The database RDBMS DST version will be updated to DSTv36 .\nINFO: This database is a Multitenant database.\nINFO: Current container is CDB$ROOT .\nINFO: Updating the RDBMS DST version of the CDB \/ CDB$ROOT database\nINFO: will NOT update the RDBMS DST version of PDB databases in this CDB.\nWARNING: There are 1 open PDBs .\nWARNING: They will be closed when CDB$ROOT is restarted\nWARNING: This script will restart the database 2 times\nWARNING: WITHOUT asking ANY confirmation.\nWARNING: Hit control-c NOW if this is not intended.\nINFO: Restarting the database in UPGRADE mode to start the DST upgrade.\nDatabase closed.\nDatabase dismounted.\nORACLE instance shut down.\nORACLE instance started.\n\nTotal System Global Area 1.7180E+10 bytes\nFixed Size                 13881528 bytes\nVariable Size            7885291520 bytes\nDatabase Buffers         9227468800 bytes\nRedo Buffers               53223424 bytes\nDatabase mounted.\nDatabase opened.\nINFO: Starting the RDBMS DST upgrade.\nINFO: Upgrading all SYS owned TSTZ data.\nINFO: It might take time before any further output is seen ...\nAn upgrade window has been successfully started.\nINFO: Restarting the database in NORMAL mode to upgrade non-SYS TSTZ data.\nDatabase closed.\nDatabase dismounted.\nORACLE instance shut down.\nORACLE instance started.\n\nTotal System Global Area 1.7180E+10 bytes\nFixed Size                 13881528 bytes\nVariable Size            7885291520 bytes\nDatabase Buffers         9227468800 bytes\nRedo Buffers               53223424 bytes\nDatabase mounted.\nDatabase opened.\nINFO: Upgrading all non-SYS TSTZ data.\nINFO: It might take time before any further output is seen ...\nINFO: Do NOT start any application yet that uses TSTZ data!\nINFO: Next is a list of all upgraded tables:\nTable list: &quot;GSMADMIN_INTERNAL&quot;.&quot;AQ$_CHANGE_LOG_QUEUE_TABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;GSMADMIN_INTERNAL&quot;.&quot;AQ$_CHANGE_LOG_QUEUE_TABLE_S&quot;\nNumber of failures: 0\nINFO: Total failures during update of TSTZ data: 0 .\nAn upgrade window has been successfully ended.\nINFO: Your new Server RDBMS DST version is DSTv36 .\nINFO: The RDBMS DST update is successfully finished.\nINFO: Make sure to exit this SQL*Plus session.\nINFO: Do not use it for timezone related selects.\n\nSession altered.\n\nSQL&gt;\n<\/pre>\n<p>In the alert.log you will see:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n...\nutltz_upg_apply is ready to update to RDBMS DSTv36 and will now restart the database in UPGRADE mode.\nShutting down ORACLE instance (immediate) (OS id: 61433)\nShutdown is initiated by sqlplus@host01(TNS V1-V3).\n2021-11-04T09:05:19.279170+01:00\nStopping background process SMCO\n2021-11-04T09:05:20.425820+01:00\n...\n\n...\nutltz_upg_apply sucessfully updated this database to RDBMS DSTv36 and took 2 minutes to run.\n2021-11-04T09:07:20.709694+01:00\n...\n<\/pre>\n<p>Check the new version.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ sqh\n\nSQL*Plus: Release 19.0.0.0.0 - Production on Thu Nov 4 09:21:49 2021\nVersion 19.12.0.0.0\n\nCopyright (c) 1982, 2021, Oracle.  All rights reserved.\n\nConnected to:\nOracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production\nVersion 19.12.0.0.0\n\nSQL&gt; show con_name\n\nCON_NAME\n------------------------------\nCDB$ROOT\nSQL&gt; select version from v$timezone_file;\n\n   VERSION\n----------\n        36\n\nSQL&gt; select count(*) from dba_invalid_objects;\n\n  COUNT(*)\n----------\n         0\n\nSQL&gt;\n<\/pre>\n<p>Keep in mind. Updating the RDBMS DST version of the CDB will not change the RDBMS_DST version of the PDB\u2019s in this CDB and updating the RDBMS DST version of a PDB will not change the RDBMS_DST version of the other PDB\u2019s or the CDB.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ sqh\n\nSQL*Plus: Release 19.0.0.0.0 - Production on Thu Nov 4 09:23:14 2021\nVersion 19.12.0.0.0\n\nCopyright (c) 1982, 2021, Oracle.  All rights reserved.\n\nConnected to:\nOracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production\nVersion 19.12.0.0.0\n\nSQL&gt; show pdbs\n\n    CON_ID CON_NAME                       OPEN MODE  RESTRICTED\n---------- ------------------------------ ---------- ----------\n         2 PDB$SEED                       READ ONLY  NO\n         3 PDB1                           READ WRITE NO\n         \nSQL&gt; alter session set container=PDB1;\n\nSession altered.\n\nSQL&gt; show con_name\n\nCON_NAME\n------------------------------\nPDB1\nSQL&gt; select version from v$timezone_file;\n\n   VERSION\n----------\n        26\n\nSQL&gt; @utltz_upg_check.sql\n\nSession altered.\n\nINFO: Starting with RDBMS DST update preparation.\nINFO: NO actual RDBMS DST update will be done by this script.\nINFO: If an ERROR occurs the script will EXIT sqlplus.\nINFO: Doing checks for known issues ...\nINFO: Database version is 19.0.0.0 .\nINFO: This database is a Multitenant database.\nINFO: This database is a PDB.\nINFO: Current PDB is PDB1 .\nINFO: Database RDBMS DST version is DSTv26 .\nINFO: No known issues detected.\nINFO: Now detecting new RDBMS DST version.\nA prepare window has been successfully started.\nINFO: Newest RDBMS DST version detected is DSTv36 .\nINFO: Next step is checking all TSTZ data.\nINFO: It might take a while before any further output is seen ...\nA prepare window has been successfully ended.\nINFO: A newer RDBMS DST version than the one currently used is found.\nINFO: Note that NO DST update was yet done.\nINFO: Now run utltz_upg_apply.sql to do the actual RDBMS DST update.\nINFO: Note that the utltz_upg_apply.sql script will\nINFO: restart the database 2 times WITHOUT any confirmation or prompt.\n\nSession altered.\n\nSQL&gt;\n<\/pre>\n<p>Now run the real upgrade on the PDB.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSQL&gt; @utltz_upg_apply.sql\n\nSession altered.\n\nINFO: If an ERROR occurs, the script will EXIT SQL*Plus.\nINFO: The database RDBMS DST version will be updated to DSTv36 .\nINFO: This database is a Multitenant database.\nINFO: This database is a PDB.\nINFO: Current PDB is PDB1 .\nWARNING: This script will restart the database 2 times\nWARNING: WITHOUT asking ANY confirmation.\nWARNING: Hit control-c NOW if this is not intended.\nINFO: Restarting the database in UPGRADE mode to start the DST upgrade.\nPluggable Database closed.\nPluggable Database opened.\nINFO: Starting the RDBMS DST upgrade.\nINFO: Upgrading all SYS owned TSTZ data.\nINFO: It might take time before any further output is seen ...\nAn upgrade window has been successfully started.\nINFO: Restarting the database in NORMAL mode to upgrade non-SYS TSTZ data.\nPluggable Database closed.\nPluggable Database opened.\nINFO: Upgrading all non-SYS TSTZ data.\nINFO: It might take time before any further output is seen ...\nINFO: Do NOT start any application yet that uses TSTZ data!\nINFO: Next is a list of all upgraded tables:\nTable list: &quot;GSMADMIN_INTERNAL&quot;.&quot;AQ$_CHANGE_LOG_QUEUE_TABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;GSMADMIN_INTERNAL&quot;.&quot;AQ$_CHANGE_LOG_QUEUE_TABLE_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN_BIPLATFORM&quot;.&quot;ESS_FAILOVER_LEASE&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN_BIPLATFORM&quot;.&quot;ESS_FAILOVER_RESOURCE&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_CNTR_QTABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_CNTR_QTABLE_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_FAVORITES_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_MGMT_NOTIFY_QTABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_MGMT_NOTIFY_QTABLE_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_LOADERJOB_TARGETS_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_SCHED_JOB_REGISTRY_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_SCHED_JOB_REG_HISTORY_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_SERVICECUSTDASHBOARD_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_AUC_AGT_JOB_INFO_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_AUC_PREREQ_DUMP_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_BLACKOUTS_NG_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;MGMT_CCR_LAST_MAPPER_RUN_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;MGMT_CCR_REG_CIPHER_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;MGMT_PROV_BOOTSERVER_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;MGMT_PROV_DHCPSERVER_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;MGMT_PROV_IP_RANGE_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;MGMT_PROV_NET_CONFIG_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;MGMT_PROV_RPM_REP_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;MGMT_PROV_STAGING_DIRS_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;MGMT_SYSTEM_ERROR_LOG_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_PROV_DEPLOYEDIMAGE_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_PROV_DEPLOYMENT_PLAN_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_PROV_DISKLESSIMAGE_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_PROXY_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;GEF_ERRORS_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;GEF_EXTRACTS_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;GEF_TRANSFERS_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_EVENT_BUS_TABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_EVENT_BUS_TABLE_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_JOB_STATUS_UPD_QTABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_JOB_STATUS_UPD_QTABLE_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_LOADERJOB_Q_TBL_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_LOADERJOB_Q_TBL_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_NOTIFY_QTABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_NOTIFY_QTABLE_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_PC_TP_TABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_EM_PC_TP_TABLE_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_MGMT_ADMINMSG_BUS_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_MGMT_ADMINMSG_BUS_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_MGMT_HOST_PING_QTABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_MGMT_HOST_PING_QTABLE_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_MGMT_LOADER_QTABLE_L&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;AQ$_MGMT_LOADER_QTABLE_S&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_OFFLINE_DC_DETAILS_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_OFFLINE_DC_DTYPE_LOG_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_GI_AGENT_COMPLIANCE_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_GI_AGT_JOB_INFO_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_BLACKOUT_OCCURRENCES_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_BLACKOUT_SCHEDULE_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_BLACKOUT_TARGET_STATE_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;EM_BLACKOUT_WINDOWS_E&quot;\nNumber of failures: 0\nTable list: &quot;SYSMAN&quot;.&quot;JAM_COLLECTION_TRACE_E&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLI$_STATTAB_TEMP&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_DBA_AUTOTASK_CLIENT_HST&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_DBA_COL_STATS_VERSIONS&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_DBA_HISTGRM_STATS_VERSN&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_DBA_IND_STATS_VERSIONS&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_DBA_OPTSTAT_OPERATIONS&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_DBA_SCHEDULER_JOBS&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_DBA_TAB_STATS_VERSIONS&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_OPTSTAT_USER_PREFS$&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_SQL_STATEMENT&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_STATTAB&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_STGTAB_DIRECTIVE&quot;\nNumber of failures: 0\nTable list: &quot;SQLTXPLAIN&quot;.&quot;SQLT$_WRI$_OPTSTAT_AUX_HISTORY&quot;\nNumber of failures: 0\nINFO: Total failures during update of TSTZ data: 0 .\nAn upgrade window has been successfully ended.\nINFO: Your new Server RDBMS DST version is DSTv36 .\nINFO: The RDBMS DST update is successfully finished.\nINFO: Make sure to exit this SQL*Plus session.\nINFO: Do not use it for timezone related selects.\n\nSession altered.\n\nSQL&gt; show con_name\n\nCON_NAME\n------------------------------\nPDB1\nSQL&gt; select version from v$timezone_file;\n\n   VERSION\n----------\n        36\n\n1 row selected.\n\nSQL&gt; select count(*) from dba_invalid_objects;\n\n  COUNT(*)\n----------\n         0\n\n1 row selected.\n\nSQL&gt;\n<\/pre>\n<p>In the alter.log you will find messages like the following:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n...\n2021-11-04T09:27:57.376617+01:00\nPDB1(3):utltz_upg_apply is ready to update to RDBMS DSTv36 and will now restart the database in UPGRADE mode.\nPDB1(3):ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE\nPDB1(3):Pluggable database PDB1 closing\nPDB1(3):JIT: pid 35044 requesting stop\nPDB1(3):Closing sequence subsystem (83968546986).\n...\n\n...\n2021-11-04T09:32:17.464967+01:00\nPDB1(3):utltz_upg_apply sucessfully updated this database to RDBMS DSTv36 and took 4 minutes to run.\n...\n<\/pre>\n<p>In case you want to monitor the progress of the time zone upgrade, you might want to execute the following scripts while the script utltz_upg_apply.sql is running.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSELECT count(*) FROM ALL_TSTZ_TABLES where UPGRADE_IN_PROGRESS='YES';\n \nset PAGES 1000\nselect TARGET, TO_CHAR(START_TIME,'HH24:MI:SS - DD-MM-YY'), TIME_REMAINING, SOFAR,\nTOTALWORK, SID, SERIAL#, OPNAME from V$SESSION_LONGOPS\nwhere sid in\n(select SID from V$SESSION where CLIENT_INFO = 'upg_tzv')\nand SOFAR &lt; TOTALWORK\norder by START_TIME;\n \nselect S.SID, S.SERIAL#, S.SQL_ID, S.PREV_SQL_ID,\nS.EVENT#, S.EVENT, S.P1TEXT, S.P1, S.P2TEXT, S.P2, S.P3TEXT, S.P3, S.TIME_REMAINING_MICRO,\nS.SEQ#, S.BLOCKING_SESSION, BS.PROGRAM &quot;Blocking Program&quot;,\nQ1.SQL_TEXT &quot;Current SQL&quot;, Q2.SQL_TEXT &quot;Previous SQL&quot;\nfrom V$SESSION S, V$SQLAREA Q1, V$SQLAREA Q2, V$SESSION BS\nwhere S.SQL_ID = Q1.SQL_ID(+)\nand S.PREV_SQL_ID = Q2.SQL_ID(+)\nand S.BLOCKING_SESSION = BS.SID(+)\nand S.CLIENT_INFO = 'upg_tzv';\n<\/pre>\n<p>You might find the following MOS Notes helpful if you want to know more about time zone upgrades.<\/p>\n<ul>\n<li>Download Time Zone Patch from MOS Note 412160.1<\/li>\n<li>Scripts to automatically update the RDBMS DST (timezone) version in an 11gR2 or 12c database . (Doc ID 1585343.1)<\/li>\n<li>Updated DST Transitions and New Time Zones in Oracle RDBMS and OJVM Time Zone File Patches (Doc ID 412160.1)<\/li>\n<\/ul>\n<h3>Conclusion<\/h3>\n<p>Time zone changes happens every now and then and it is good know how you can upgrade your Oracle database to the latest time zone release, in case you need to. However, do very good testing, before you run these scripts on your production database. And take care, that this is not an online procedure. The CDB is restarted several times, and the PDB\u2019s are not upgraded automatically. You need to take care of the PDB\u2019s yourself.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, I did an upgrade from Oracle 12cR2 to 19c (RU12). It is an CDB with one PDB. One of the last steps after upgrading the database is to bring the time zone to the latest version. Why do I need time zone updates at all? Because nothing is more constant than the changes. And [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[2,4],"tags":[18,25],"class_list":["post-295","post","type-post","status-publish","format-standard","hentry","category-db","category-oracle","tag-oracle","tag-timezone","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How To Upgrade The TimeZone Version On An Upgraded Oracle 12cR2 To 19c CDB With PDB\u2019s From TZ Version 26 to 36 - ptdb - Platinum DB<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ptdb.ch\/?p=295\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How To Upgrade The TimeZone Version On An Upgraded Oracle 12cR2 To 19c CDB With PDB\u2019s From TZ Version 26 to 36 - ptdb - Platinum DB\" \/>\n<meta property=\"og:description\" content=\"Recently, I did an upgrade from Oracle 12cR2 to 19c (RU12). It is an CDB with one PDB. One of the last steps after upgrading the database is to bring the time zone to the latest version. Why do I need time zone updates at all? Because nothing is more constant than the changes. And [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ptdb.ch\/?p=295\" \/>\n<meta property=\"og:site_name\" content=\"ptdb - Platinum DB\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-04T09:14:47+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ptdb.ch\/?p=295\",\"url\":\"https:\/\/ptdb.ch\/?p=295\",\"name\":\"How To Upgrade The TimeZone Version On An Upgraded Oracle 12cR2 To 19c CDB With PDB\u2019s From TZ Version 26 to 36 - ptdb - Platinum DB\",\"isPartOf\":{\"@id\":\"https:\/\/ptdb.ch\/#website\"},\"datePublished\":\"2021-11-04T09:14:47+00:00\",\"author\":{\"@id\":\"https:\/\/ptdb.ch\/#\/schema\/person\/0b7baf52d23e71d85e1c95442306090b\"},\"breadcrumb\":{\"@id\":\"https:\/\/ptdb.ch\/?p=295#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ptdb.ch\/?p=295\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ptdb.ch\/?p=295#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ptdb.ch\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How To Upgrade The TimeZone Version On An Upgraded Oracle 12cR2 To 19c CDB With PDB\u2019s From TZ Version 26 to 36\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ptdb.ch\/#website\",\"url\":\"https:\/\/ptdb.ch\/\",\"name\":\"ptdb - Platinum DB\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ptdb.ch\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/ptdb.ch\/#\/schema\/person\/0b7baf52d23e71d85e1c95442306090b\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ptdb.ch\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1a3dffc48c5f6bae0b88a9f0b2a986d48d322673fbc2880c5abbfab96e45da8a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1a3dffc48c5f6bae0b88a9f0b2a986d48d322673fbc2880c5abbfab96e45da8a?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/ptdb.ch\"],\"url\":\"https:\/\/ptdb.ch\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How To Upgrade The TimeZone Version On An Upgraded Oracle 12cR2 To 19c CDB With PDB\u2019s From TZ Version 26 to 36 - ptdb - Platinum DB","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ptdb.ch\/?p=295","og_locale":"en_US","og_type":"article","og_title":"How To Upgrade The TimeZone Version On An Upgraded Oracle 12cR2 To 19c CDB With PDB\u2019s From TZ Version 26 to 36 - ptdb - Platinum DB","og_description":"Recently, I did an upgrade from Oracle 12cR2 to 19c (RU12). It is an CDB with one PDB. One of the last steps after upgrading the database is to bring the time zone to the latest version. Why do I need time zone updates at all? Because nothing is more constant than the changes. And [&hellip;]","og_url":"https:\/\/ptdb.ch\/?p=295","og_site_name":"ptdb - Platinum DB","article_published_time":"2021-11-04T09:14:47+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"25 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ptdb.ch\/?p=295","url":"https:\/\/ptdb.ch\/?p=295","name":"How To Upgrade The TimeZone Version On An Upgraded Oracle 12cR2 To 19c CDB With PDB\u2019s From TZ Version 26 to 36 - ptdb - Platinum DB","isPartOf":{"@id":"https:\/\/ptdb.ch\/#website"},"datePublished":"2021-11-04T09:14:47+00:00","author":{"@id":"https:\/\/ptdb.ch\/#\/schema\/person\/0b7baf52d23e71d85e1c95442306090b"},"breadcrumb":{"@id":"https:\/\/ptdb.ch\/?p=295#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ptdb.ch\/?p=295"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ptdb.ch\/?p=295#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ptdb.ch\/"},{"@type":"ListItem","position":2,"name":"How To Upgrade The TimeZone Version On An Upgraded Oracle 12cR2 To 19c CDB With PDB\u2019s From TZ Version 26 to 36"}]},{"@type":"WebSite","@id":"https:\/\/ptdb.ch\/#website","url":"https:\/\/ptdb.ch\/","name":"ptdb - Platinum DB","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ptdb.ch\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/ptdb.ch\/#\/schema\/person\/0b7baf52d23e71d85e1c95442306090b","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ptdb.ch\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1a3dffc48c5f6bae0b88a9f0b2a986d48d322673fbc2880c5abbfab96e45da8a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1a3dffc48c5f6bae0b88a9f0b2a986d48d322673fbc2880c5abbfab96e45da8a?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/ptdb.ch"],"url":"https:\/\/ptdb.ch\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/ptdb.ch\/index.php?rest_route=\/wp\/v2\/posts\/295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ptdb.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ptdb.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ptdb.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ptdb.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=295"}],"version-history":[{"count":0,"href":"https:\/\/ptdb.ch\/index.php?rest_route=\/wp\/v2\/posts\/295\/revisions"}],"wp:attachment":[{"href":"https:\/\/ptdb.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ptdb.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ptdb.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}