How to Upgrade DB Time Zone Using Patch ORA-39405

Hello Friend's

In this post we will learn to patch Timezone of database

We will not go for an rolling patch in this case , We will apply the patch one by one on both nodes

Once The DST Patch is downloaded , Unzip the patch as given below :

Link to download Timezone 40 Patch :

https://updates.oracle.com/download/34698179.html

How to Upgrade DB Time Zone Using Patch ORA-39405

[oracle@dm01db01 tmp]# unzip --q p34698179_190000_Linux-x86-64.zip
Archive:  p34698179_190000_Linux-x86-64.zip
   creating: 34698179/
   creating: 34698179/etc/
   creating: 34698179/etc/config/
  inflating: 34698179/etc/config/inventory.xml
  inflating: 34698179/etc/config/actions.xml
  inflating: 34698179/README.txt
   creating: 34698179/files/
   creating: 34698179/files/oracore/
   creating: 34698179/files/oracore/zoneinfo/
   creating: 34698179/files/oracore/zoneinfo/little/
  inflating: 34698179/files/oracore/zoneinfo/little/timezlrg_40.dat
  inflating: 34698179/files/oracore/zoneinfo/little/timezone_40.dat
   creating: 34698179/files/oracore/zoneinfo/big/
  inflating: 34698179/files/oracore/zoneinfo/big/timezlrg_40.dat
  inflating: 34698179/files/oracore/zoneinfo/big/timezone_40.dat
  inflating: 34698179/files/oracore/zoneinfo/timezlrg_40.dat
  inflating: 34698179/files/oracore/zoneinfo/timezone_40.dat
  inflating: 34698179/files/oracore/zoneinfo/readme_40.txt

Stop the database using Srvctl command :

We got some errors while stopping the database solution for that is mentioned below .


[oracle@dm01db01 tmp]$ srvctl stop instance -d CDBAIR -i CDBAIR1
PRCD-1131 : Failed to stop database CDBAIR and its services on nodes dm01db01
PRCR-1133 : Failed to stop database CDBAIR and its running services
PRCR-1132 : Failed to stop resources using a filter
CRS-2974: unable to act on resource 'ora.CDBAIR.db' on server 'dm01db01' because that would require stopping or relocating resource 'ora.CDBAIR.CDBAIR_pdbair' but the appropriate force flag was not specified

check database services running :


[oracle@dm01db01 tmp]$ srvctl status service -d CDBAIR
Service CDBAIR_pdbair is running on instance(s) CDBAIR1,CDBAIR2

Stop the database using Force option on Node 1 :


[oracle@dm01db01 tmp]$ srvctl stop instance -d CDBAIR -i CDBAIR1 -f

check the status of database , Node 1 instance should be stopped :


[oracle@dm01db01 tmp]$ srvctl status database -d CDBAIR
Instance CDBAIR1 is not running on node dm01db01
Instance CDBAIR2 is running on node dm01db02

Now start with the apply of Patch on Node 1 :


[oracle@dm01db01 tmp]$ export PATH=$ORACLE_HOME/OPatch:$PATH
[oracle@dm01db01 tmp]$
[oracle@dm01db01 tmp]$ cd 34698179/
[oracle@dm01db01 34698179]$
[oracle@dm01db01 34698179]$
[oracle@dm01db01 34698179]$ echo $ORACLE_SID
CDBAIR1
[oracle@dm01db01 34698179]$
[oracle@dm01db01 34698179]$ opatch apply
Oracle Interim Patch Installer version 12.2.0.1.32
Copyright (c) 2023, Oracle Corporation.  All rights reserved.


Oracle Home       : /u02/app/oracle/product/19.0.0.0/dbhome_3
Central Inventory : /u01/app/oraInventory
   from           : /u02/app/oracle/product/19.0.0.0/dbhome_3/oraInst.loc
OPatch version    : 12.2.0.1.32
OUI version       : 12.2.0.7.0
Log file location : /u02/app/oracle/product/19.0.0.0/dbhome_3/cfgtoollogs/opatch/opatch2023-02-27_18-50-36PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   34698179

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Backing up files...
Applying interim patch '34698179' to OH '/u02/app/oracle/product/19.0.0.0/dbhome_3'

Patching component oracle.oracore.rsf, 19.0.0.0.0...
Patch 34698179 successfully applied.
Log file location: /u02/app/oracle/product/19.0.0.0/dbhome_3/cfgtoollogs/opatch/opatch2023-02-27_18-50-36PM_1.log

OPatch succeeded.
[oracle@dm01db01 34698179]$

Patch has been applied on Node 1 sucessfully , Now start the database instance 1 :


[oracle@dm01db01 34698179]$ srvctl start instance -d CDBAIR -i CDBAIR1
[oracle@dm01db01 34698179]$
[oracle@dm01db01 34698179]$

Check the instance status :


[oracle@dm01db01 34698179]$ srvctl status database -d CDBAIR
Instance CDBAIR1 is running on node dm01db01
Instance CDBAIR2 is running on node dm01db02

Check the Opatch lspatches status for the applied patch :


[oracle@dm01db01 34698179]$
[oracle@dm01db01 34698179]$ opatch lspatches
34698179;RDBMS - DSTV40 UPDATE - TZDATA2022E
34122773;OCW Interim patch for 34122773
29780459;INCREASE _LM_RES_HASH_BUCKET AND BACK OUT CHANGES FROM THE BUG 29416368 FIX
34006650;DSTV38 UPDATE - TZDATA2022A - NEED OJVM FIX
34006614;RDBMS - DSTV38 UPDATE - TZDATA2022A
33613829;RDBMS - DSTV37 UPDATE - TZDATA2021E
32327201;RDBMS - DSTV36 UPDATE - TZDATA2020E
31335037;RDBMS - DSTV35 UPDATE - TZDATA2020A
30432118;MERGE REQUEST ON TOP OF 19.0.0.0.0 FOR BUGS 28852325 29997937
33912872;DATABASE PERL UPDATE IN 19C TO V5.32-1 (CVE-2022-23990 - LIBEXPAT UPDATE)
34113634;JDK BUNDLE PATCH 19.0.0.0.220719
34086870;OJVM RELEASE UPDATE: 19.16.0.0.220719 (34086870)
34133642;Database Release Update : 19.16.0.0.220719 (34133642)

OPatch succeeded.

We have completed the Patch procedure on Node 1 , Now Let's start for the Node 2 Part :

Node 2 :

Stop the Instance of database on Node 2 using teh -f Force option :


[oracle@dm01db02 ~]$ srvctl stop instance -d CDBAIR -i CDBAIR2 -f
[oracle@dm01db02 ~]$

[oracle@dm01db02 ~]$ srvctl status database -d CDBAIR
Instance CDBAIR1 is running on node dm01db01
Instance CDBAIR2 is not running on node dm01db02

Export PATH for OPatch


[oracle@dm01db02 ~]$ export PATH=$ORACLE_HOME/OPatch:$PATH

Unzip the patch on node 2 :


[oracle@dm01db02 tmp]$ unzip --q p34698179_190000_Linux-x86-64.zip
Archive:  p34698179_190000_Linux-x86-64.zip
   creating: 34698179/
   creating: 34698179/etc/
   creating: 34698179/etc/config/
  inflating: 34698179/etc/config/inventory.xml
  inflating: 34698179/etc/config/actions.xml
  inflating: 34698179/README.txt
   creating: 34698179/files/
   creating: 34698179/files/oracore/
   creating: 34698179/files/oracore/zoneinfo/
   creating: 34698179/files/oracore/zoneinfo/little/
  inflating: 34698179/files/oracore/zoneinfo/little/timezlrg_40.dat
  inflating: 34698179/files/oracore/zoneinfo/little/timezone_40.dat
   creating: 34698179/files/oracore/zoneinfo/big/
  inflating: 34698179/files/oracore/zoneinfo/big/timezlrg_40.dat
  inflating: 34698179/files/oracore/zoneinfo/big/timezone_40.dat
  inflating: 34698179/files/oracore/zoneinfo/timezlrg_40.dat
  inflating: 34698179/files/oracore/zoneinfo/timezone_40.dat
  inflating: 34698179/files/oracore/zoneinfo/readme_40.txt

Now start with the apply of Patch on Node 2 :


[oracle@dm01db02 34698179]$ opatch apply
Oracle Interim Patch Installer version 12.2.0.1.32
Copyright (c) 2023, Oracle Corporation.  All rights reserved.


Oracle Home       : /u02/app/oracle/product/19.0.0.0/dbhome_3
Central Inventory : /u01/app/oraInventory
   from           : /u02/app/oracle/product/19.0.0.0/dbhome_3/oraInst.loc
OPatch version    : 12.2.0.1.32
OUI version       : 12.2.0.7.0
Log file location : /u02/app/oracle/product/19.0.0.0/dbhome_3/cfgtoollogs/opatch/opatch2023-02-27_19-03-42PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   34698179

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Backing up files...
Applying interim patch '34698179' to OH '/u02/app/oracle/product/19.0.0.0/dbhome_3'

Patching component oracle.oracore.rsf, 19.0.0.0.0...
Patch 34698179 successfully applied.
Log file location: /u02/app/oracle/product/19.0.0.0/dbhome_3/cfgtoollogs/opatch/opatch2023-02-27_19-03-42PM_1.log

OPatch succeeded.

Patch has been applied on Node 2 sucessfully , Now start the database instance 2 :


[oracle@dm01db02 34698179]$ srvctl start instance -d CDBAIR -i CDBAIR2
[oracle@dm01db02 34698179]$
[oracle@dm01db02 34698179]$ srvctl status database -d CDBAIR
Instance CDBAIR1 is running on node dm01db01
Instance CDBAIR2 is running on node dm01db02


[oracle@dm01db02 34698179]$ srvctl start instance -d CDBAIR -i CDBAIR2
[oracle@dm01db02 34698179]$

Check the instance status :


[oracle@dm01db02 34698179]$ srvctl status database -d CDBAIR
Instance CDBAIR1 is running on node dm01db01
Instance CDBAIR2 is running on node dm01db02

Check the Opatch lspatches status for the applied patch :


[oracle@dm01db02 34698179]$ opatch lspatches
34698179;RDBMS - DSTV40 UPDATE - TZDATA2022E
34122773;OCW Interim patch for 34122773
29780459;INCREASE _LM_RES_HASH_BUCKET AND BACK OUT CHANGES FROM THE BUG 29416368 FIX
34006650;DSTV38 UPDATE - TZDATA2022A - NEED OJVM FIX
34006614;RDBMS - DSTV38 UPDATE - TZDATA2022A
33613829;RDBMS - DSTV37 UPDATE - TZDATA2021E
32327201;RDBMS - DSTV36 UPDATE - TZDATA2020E
31335037;RDBMS - DSTV35 UPDATE - TZDATA2020A
30432118;MERGE REQUEST ON TOP OF 19.0.0.0.0 FOR BUGS 28852325 29997937
33912872;DATABASE PERL UPDATE IN 19C TO V5.32-1 (CVE-2022-23990 - LIBEXPAT UPDATE)
34113634;JDK BUNDLE PATCH 19.0.0.0.220719
34086870;OJVM RELEASE UPDATE: 19.16.0.0.220719 (34086870)
34133642;Database Release Update : 19.16.0.0.220719 (34133642)

OPatch succeeded.

Now Login to database and Follow the below steps :

Step 1 : check the database satus :



   INST_ID INSTANCE_NAME    DB_NAME   HOST_NAME                      DATABASE_ROLE    OPEN_MODE  DB_VERSION        LOGINS     DB UP TIME
---------- ---------------- --------- ------------------------------ ---------------- ---------- ----------------- ---------- -----------------------------
         2 CDBAIR2          CDBAIR    dm01db02                  PRIMARY          READ WRITE 19.0.0.0.0        ALLOWED    27-FEB-2023 19:05:00
         1 CDBAIR1          CDBAIR    dm01db01                  PRIMARY          READ WRITE 19.0.0.0.0        ALLOWED    27-FEB-2023 18:52:47

SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDBRAT                         READ WRITE NO

Step 2 : Check the time zone version current :



SQL> select * from gv$timezone_file;

FILENAME                VERSION     CON_ID
-------------------- ---------- ----------
timezlrg_38.dat              38          0
timezlrg_38.dat              38          0

SQL>

SQL> col PROPERTY_NAME for a40
SQL> col VALUE for a25
SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE 'DST_%'
ORDER BY PROPERTY_NAME;

PROPERTY_NAME                            VALUE
---------------------------------------- -------------------------
DST_PRIMARY_TT_VERSION                   38
DST_SECONDARY_TT_VERSION                 0
DST_UPGRADE_STATE                        NONE

Step 3 : Check the latest Timezone version :


SQL>
SQL> SELECT DBMS_DST.get_latest_timezone_version FROM   dual;

GET_LATEST_TIMEZONE_VERSION
---------------------------
                         40

Step 4 : As we have to start the database in upgrade mode change the status of parameter cluster_database from TRUE to FALSE .


SQL> alter system set cluster_database=FALSE scope=spfile sid='*';

System altered.

Step 5 : Stop the database using srvctl command :


[oracle@dm01db02 34698179]$ srvctl status database -d CDBAIR
Instance CDBAIR1 is not running on node dm01db01
Instance CDBAIR2 is not running on node dm01db02
[oracle@dm01db02 34698179]$
[oracle@dm01db02 34698179]$

Step 6 : Start the database in upgrade mode on single instance and open PDB in upgrade mode .


[oracle@dm01db02 34698179]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Feb 27 19:48:04 2023
Version 19.16.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup upgrade
ORACLE instance started.

Total System Global Area 7953271240 bytes
Fixed Size                  9157064 bytes
Variable Size            1728053248 bytes
Database Buffers         5939134464 bytes
Redo Buffers              276926464 bytes
Database mounted.
Database opened.

SQL> select name DB_NAME,HOST_NAME,DATABASE_ROLE,OPEN_MODE,version DB_VERSION,LOGINS,to_char(STARTUP_TIME,'DD-MON-YYYY HH24:MI:SS') "DB UP TIME" from v$database,gv$instance;

DB_NAME   HOST_NAME                      DATABASE_ROLE    OPEN_MODE  DB_VERSION        LOGINS     DB UP TIME
--------- ------------------------------ ---------------- ---------- ----------------- ---------- -----------------------------
CDBAIR    dm01db02                  PRIMARY          READ WRITE 19.0.0.0.0        RESTRICTED 27-FEB-2023 19:48:23

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MIGRATE    YES
         3 PDBRAT                         MOUNTED
SQL>
SQL> alter pluggable database PDBRAT open upgrade;

Pluggable database altered.

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
CDBAIR2          OPEN MIGRATE

Step 7 : Prepare Pre-Upgrade Stage Run the below Given Package .


SQL>
SQL> DECLARE
  l_tz_version PLS_INTEGER;
BEGIN
  l_tz_version := DBMS_DST.get_latest_timezone_version;

  DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
  DBMS_DST.begin_prepare(l_tz_version);
END;
/ 

PL/SQL procedure successfully completed.

SQL>
SQL> COLUMN property_name FORMAT A30
SQL> COLUMN property_value FORMAT A20
SQL> SELECT property_name, property_value
FROM   database_properties
WHERE  property_name LIKE 'DST_%'
ORDER BY property_name;  2    3    4

PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
DST_PRIMARY_TT_VERSION         38
DST_SECONDARY_TT_VERSION       40
DST_UPGRADE_STATE              PREPARE

Step 8 : Find the affected tables


SQL> EXEC DBMS_DST.find_affected_tables;

PL/SQL procedure successfully completed.

SQL>
SQL> select count(*) from sys.dst$affected_tables;

  COUNT(*)
----------
         0

SQL>
SQL> select * from sys.dst$error_table;

no rows selected

Step 9: End the Pre-Upgrade stage


SQL>
SQL> EXEC DBMS_DST.end_prepare;

PL/SQL procedure successfully completed.

Step 10: Start TZ (Timezone) Upgrade


SQL> SET SERVEROUTPUT ON
DECLARE
  l_tz_version PLS_INTEGER;
BEGIN
  SELECT DBMS_DST.get_latest_timezone_version
  INTO   l_tz_version
  FROM   dual;

  DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
  DBMS_DST.begin_upgrade(l_tz_version);
END;SQL>   2    3    4    5    6    7    8    9   10
 11  /
l_tz_version=40
An upgrade window has been successfully started.

PL/SQL procedure successfully completed.

Step 11 : Shutdown and startup database in Normal mode :


SQL> shu immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.

Total System Global Area 7953271240 bytes
Fixed Size                  9157064 bytes
Variable Size            1728053248 bytes
Database Buffers         5939134464 bytes
Redo Buffers              276926464 bytes
Database mounted.
Database opened.
SQL>

Step 12: End TZ Upgrade


SQL> SET SERVEROUTPUT ON
DECLARE
  l_failures   PLS_INTEGER;
SQL>   2    3  BEGIN
  DBMS_DST.upgrade_database(l_failures);
  4    5    DBMS_OUTPUT.put_line('DBMS_DST.upgrade_database : l_failures=' || l_failures);
  DBMS_DST.end_upgrade(l_failures);
  6    7    DBMS_OUTPUT.put_line('DBMS_DST.end_upgrade : l_failures=' || l_failures);
END;
/  8    9
Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_S"
Number of failures: 0
Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_L"
Number of failures: 0
Table list: "MDSYS"."SDO_DIAG_MESSAGES_TABLE"
Number of failures: 0
Table list: "DVSYS"."AUDIT_TRAIL$"
Number of failures: 0
Table list: "DVSYS"."SIMULATION_LOG$"
Number of failures: 0
DBMS_DST.upgrade_database : l_failures=0
An upgrade window has been successfully ended.
DBMS_DST.end_upgrade : l_failures=0

PL/SQL procedure successfully completed.

Step 13: Verify TZ Upgrade


SQL> SELECT * FROM v$timezone_file;

FILENAME                VERSION     CON_ID
-------------------- ---------- ----------
timezlrg_40.dat              40          0

SQL>
SQL> COLUMN property_name FORMAT A30
SQL> COLUMN property_value FORMAT A20
SQL>
SQL> SELECT property_name, property_value
FROM   database_properties
WHERE  property_name LIKE 'DST_%'
ORDER BY property_name; 

PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
DST_PRIMARY_TT_VERSION         40
DST_SECONDARY_TT_VERSION       0
DST_UPGRADE_STATE              NONE

Step 14 : Change parameter Cluster_database from FALSE to TRUE and shutdown the database.


SQL> show parameter cluster

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cdb_cluster                          boolean     FALSE
cdb_cluster_name                     string
cluster_database                     boolean     FALSE
cluster_database_instances           integer     1
cluster_interconnects                string      10.10.1.5:10.10.1.2
SQL>

SQL> alter system set cluster_database=TRUE scope=spfile sid='*';

System altered.

SQL> shu immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

Step 15 : Start the database using Srctl command and check status of database.


[oracle@dm01db02 34698179]$ srvctl start database -d CDBAIR
[oracle@dm01db02 34698179]$


[oracle@dm01db02 34698179]$ srvctl status database -d CDBAIR
Instance CDBAIR1 is running on node dm01db01
Instance CDBAIR2 is running on node dm01db02

We have completed the procedure for the root container now we have to do the same steps for all PDB as well

Below are the steps given for PDB level .

Step 1 PDB : Login to database


[oracle@dm01db01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Feb 27 20:27:10 2023
Version 19.16.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDBRAT                         READ WRITE NO
SQL>
SQL>

Step 2 PDB : Stop the PDB on all Instance


SQL> alter pluggable database PDBRAT close instances=all;

Pluggable database altered.

Step 3 PDB : Start database PDB in upgrade mode .


SQL> alter pluggable database PDBRAT  open upgrade;

Pluggable database altered.


SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDBRAT                         MIGRATE    YES
SQL>
SQL>
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL>

Step 4 PDB : Connect to intended PDB .


SQL> alter session set container=PDBRAT;

Session altered.

SQL>
SQL> show con_name

CON_NAME
------------------------------
PDBRAT
SQL>
SQL>
SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
CDBAIR1          OPEN MIGRATE

Step 5 PDB : Prepare Pre-Upgrade Stage


SQL>
SQL>  DECLARE
  l_tz_version PLS_INTEGER;
BEGIN
  l_tz_version := DBMS_DST.get_latest_timezone_version;

  DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
  DBMS_DST.begin_prepare(l_tz_version);
END;
/

PL/SQL procedure successfully completed.

SQL>
SQL> COLUMN property_name FORMAT A30
SQL> COLUMN property_value FORMAT A20
SQL> SELECT property_name, property_value
FROM   database_properties
WHERE  property_name LIKE 'DST_%'
ORDER BY property_name; 

PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
DST_PRIMARY_TT_VERSION         38
DST_SECONDARY_TT_VERSION       40
DST_UPGRADE_STATE              PREPARE

Step 6 PDB : Find the affected tables


SQL>
SQL> EXEC DBMS_DST.find_affected_tables;

PL/SQL procedure successfully completed.

Step 6 PDB : Find the affected tables


SQL> select count(*) from sys.dst$affected_tables;

  COUNT(*)
----------
         0

SQL>
SQL> select * from sys.dst$error_table;

no rows selected

Step 7 PDB : End the Pre-Upgrade stage


SQL>
SQL> EXEC DBMS_DST.end_prepare;

PL/SQL procedure successfully completed.

Step 8 PDB : Start TZ Upgrade


SQL>
SQL> SET SERVEROUTPUT ON
DECLARE
  l_tz_version PLS_INTEGER;
BEGIN
  SELECT DBMS_DST.get_latest_timezone_version
  INTO   l_tz_version
  FROM   dual;

  DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
  DBMS_DST.begin_upgrade(l_tz_version);
END;
/SQL>   2    3    4    5    6    7    8    9   10   11
l_tz_version=40
An upgrade window has been successfully started.

PL/SQL procedure successfully completed.

Step 9 PDB : Shutdown PDB and Startup PDB in Normal mode


SQL>
SQL> alter pluggable database PDBRAT close instances=all;

Pluggable database altered.

SQL> alter pluggable database PDBRAT  open read write instances=all;

Pluggable database altered.

Step 10 PDB : End TZ Upgrade


SQL> SET SERVEROUTPUT ON
DECLARE
SQL>   2    l_failures   PLS_INTEGER;
  3  BEGIN
  DBMS_DST.upgrade_database(l_failures);
  DBMS_OUTPUT.put_line('DBMS_DST.upgrade_database : l_failures=' || l_failures);
  4    5    6    DBMS_DST.end_upgrade(l_failures);
  DBMS_OUTPUT.put_line('DBMS_DST.end_upgrade : l_failures=' || l_failures);
END;
/  7    8    9
Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_S"
Number of failures: 0
Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_L"
Number of failures: 0
Table list: "MDSYS"."SDO_DIAG_MESSAGES_TABLE"
Number of failures: 0
Table list: "DVSYS"."AUDIT_TRAIL$"
Number of failures: 0
Table list: "DVSYS"."SIMULATION_LOG$"
Number of failures: 0
DBMS_DST.upgrade_database : l_failures=0
An upgrade window has been successfully ended.
DBMS_DST.end_upgrade : l_failures=0

PL/SQL procedure successfully completed.

SQL> SELECT * FROM gv$timezone_file;

FILENAME                VERSION     CON_ID
-------------------- ---------- ----------
timezlrg_40.dat              40          0
timezlrg_40.dat              40          0

SQL> SELECT property_name, property_value
FROM   database_properties
WHERE  property_name LIKE 'DST_%'
ORDER BY property_name;  

PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
DST_PRIMARY_TT_VERSION         40
DST_SECONDARY_TT_VERSION       0
DST_UPGRADE_STATE              NONE

SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDBRAT                         READ WRITE NO

Need to do this for all PDB's in perticular container .

Warning: You use this website's information and materials solely at your own risk.

It is solely made available for educational purposes.

Although it has undergone internal testing, we cannot guarantee that it will be successful for you.

Before utilizing, be sure to execute it in your test environment.

Previous
Next Post »