top of page
Search
  • Writer's pictureSudipta Bhaskar

How to upgrade Oracle RAC Database from 12.2.0.1 to 19.8

This post is about upgrading multitenant RAC Database from 12c to 19c.


I will attempt this in silent mode.


Following are the details of my current RAC.


Following are the main steps of upgrade.


  1. Install Oracle 19.3 db home binary.

  2. Executing preupgrade jar

  3. Performing the pre upgrade actions

  4. Backing up the database / Create a guaranteed restore point

  5. Upgrade the database

  6. Perform the post upgrade actions


Let's first create the folder structure /dboracle/app/oracle/product/19.0/dbhome_1 in both the servers.

mkdir -p /dboracle/app/oracle/product/19.0/dbhome_1
chown -R oracle:oinstall /dboracle/app/oracle/product/19.0/dbhome_1

I have downloaded the 19.3 db home binaries (LINUX.X64_193000_db_home.zip).

I have coped it to /dboracle/dbsoftware in first node and unzipped it.


Let's install the 19.3 db home binaries. I want to do this in silent mode with the help of a response file.


Apply the 19.8.0.0.200714 RU (Patch No 31305339)

[oracle@OEL7N1 dbsoftware]$ ./runInstaller -waitforcompletion -ignorePrereqFailure -applyRU /dboracle/software/31305339
ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable.
Preparing the home to patch...
Applying the patch /dboracle/software/31305339...
OPatch command failed while applying the patch. For details look at the logs from /dboracle/dbsoftware/cfgtoollogs/opatchauto/.

It failed because opatch version is not meeting the requirement.


Copied latest Opatch and applied patch again.

[oracle@OEL7N1 dbsoftware]$ ./runInstaller -waitforcompletion -ignorePrereqFailure -applyRU /dboracle/software/31305339
ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable.
Preparing the home to patch...
Applying the patch /dboracle/software/31305339...
Successfully applied the patch.
The log can be found at: /u01/app/oraInventory/logs/InstallActions2021-05-06_03-38-51PM/installerPatchActions_2021-05-06_03-38-51PM.log

No X11 DISPLAY variable was set, but this program performed an operation which requires it.
[oracle@OEL7N1 dbsoftware]$

Prerequisites :

[oracle@OEL7N1 dbsoftware]$ id
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba),54331(asmdba),54332(asmadmin)
[oracle@OEL7N1 dbsoftware]$ pwd
/dboracle/dbsoftware
[oracle@OEL7N1 dbsoftware]$ ./runInstaller -silent -executePrereqs -responseFile /home/oracle/db.rsp
Launching Oracle Database Setup Wizard...

Prerequisite checks executed successfully.

Installation :

[oracle@OEL7N1 dbsoftware]$ ./runInstaller -waitforcompletion -ignorePrereqFailure -silent -responseFile /home/oracle/db.rsp
Launching Oracle Database Setup Wizard...

[FATAL] [INS-35954] The installer has detected that the Oracle home location provided in the response file is not correct.
   CAUSE: The Database Oracle home is the location from where the installer is executed. It has been detected that the value set in the response file is different (/dboracle/app/oracle/product/19.0/dbhome_1). Value expected is: /dboracle/dbsoftware
   ACTION: It is not required to specify ORACLE_HOME in the response file for Database installation. Alternatively, set it to the location of the installer (/dboracle/dbsoftware).

Reason : We need to copy all the binaries to the oracle home location and then run runInstaller

[oracle@OEL7N1 dbhome_1]$ ./runInstaller -waitforcompletion -ignorePrereqFailure -silent -responseFile /home/oracle/db.rsp
Launching Oracle Database Setup Wizard...

[WARNING] [INS-13013] Target environment does not meet some mandatory requirements.
   CAUSE: Some of the mandatory prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/InstallActions2021-05-06_04-30-13PM/installActions2021-05-06_04-30-13PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/InstallActions2021-05-06_04-30-13PM/installActions2021-05-06_04-30-13PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /dboracle/app/oracle/product/19.0/dbhome_1/install/response/db_2021-05-06_04-30-13PM.rsp

You can find the log of this install session at:
 /u01/app/oraInventory/logs/InstallActions2021-05-06_04-30-13PM/installActions2021-05-06_04-30-13PM.log

As a root user, execute the following script(s):
        1. /dboracle/app/oracle/product/19.0/dbhome_1/root.sh

Execute /dboracle/app/oracle/product/19.0/dbhome_1/root.sh on the following nodes:
[OEL7N1, OEL7N2]


Successfully Setup Software with warning(s).

Run the mentioned script in both the nodes. I am showing example of running in node1.

[root@OEL7N1 ~]# /dboracle/app/oracle/product/19.0/dbhome_1/root.sh
Check /dboracle/app/oracle/product/19.0/dbhome_1/install/root_OEL7N1.localdomain_2021-05-06_16-56-05-046986658.log for the output of root script
[root@OEL7N1 ~]# cat /dboracle/app/oracle/product/19.0/dbhome_1/install/root_OEL7N1.localdomain_2021-05-06_16-56-05-046986658.log
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /dboracle/app/oracle/product/19.0/dbhome_1
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

Let's go to the next part of Executing preupgrade jar.


preupgrade.jar file is located at $ORACLE_HOME/rdbms/admin

[oracle@OEL7N1 admin]$ pwd
/dboracle/app/oracle/product/19.0/dbhome_1/rdbms/admin
[oracle@OEL7N1 admin]$ ls -ltr preupgrade.jar
-rw-r--r-- 1 oracle oinstall 726130 May  6 16:28 preupgrade.jar

Let's run the preupgrade from 12c home.

[oracle@OEL7N1 admin]$ /dboracle/app/oracle/product/12.2.0/dbhome_1/jdk/bin/java -jar /dboracle/app/oracle/product/19.0/dbhome_1/rdbms/admin/preupgrade.jar DIR /dboracle/upgrade
==================
PREUPGRADE SUMMARY
==================
  /dboracle/upgrade/preupgrade.log
  /dboracle/upgrade/preupgrade_fixups.sql
  /dboracle/upgrade/postupgrade_fixups.sql

Execute fixup scripts across the entire CDB:

Before upgrade:

1. Execute preupgrade fixups with the below command
$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/rdbms/admin $ORACLE_HOME/rdbms/admin/catcon.pl -l /dboracle/upgrade/ -b preup_orcl /dboracle/upgrade/preupgrade_fixups.sql

2. Review logs under /dboracle/upgrade/

After the upgrade:

1. Execute postupgrade fixups with the below command
$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/rdbms/admin $ORACLE_HOME/rdbms/admin/catcon.pl -l /dboracle/upgrade/ -b postup_orcl /dboracle/upgrade/postupgrade_fixups.sql

2. Review logs under /dboracle/upgrade/

Preupgrade complete: 2021-05-06T17:36:58

Let's check the logs and take action.

[root@OEL7N1 upgrade]# cat preupgrade.log
Report generated by Oracle Database Pre-Upgrade Information Tool Version
19.0.0.0.0 Build: 1 on 2021-05-06T17:33:24

Upgrade-To version: 19.0.0.0.0

=======================================
Status of the database prior to upgrade
=======================================
      Database Name:  ORCL
     Container Name:  CDB$ROOT
       Container ID:  1
            Version:  12.2.0.1.0
     DB Patch Level:  DATABASE APR 2021 RELEASE UPDATE 12.2.0.1.210420
         Compatible:  12.2.0
          Blocksize:  8192
           Platform:  Linux x86 64-bit
      Timezone File:  26
  Database log mode:  NOARCHIVELOG
           Readonly:  FALSE
            Edition:  EE

  Oracle Component                       Upgrade Action    Current Status
  ----------------                       --------------    --------------
  Oracle Server                          [to be upgraded]  VALID
  JServer JAVA Virtual Machine           [to be upgraded]  VALID
  Oracle XDK for Java                    [to be upgraded]  VALID
  Real Application Clusters              [to be upgraded]  VALID
  Oracle Workspace Manager               [to be upgraded]  VALID
  OLAP Analytic Workspace                [to be upgraded]  VALID
  Oracle Label Security                  [to be upgraded]  VALID
  Oracle Database Vault                  [to be upgraded]  VALID
  Oracle Text                            [to be upgraded]  VALID
  Oracle XML Database                    [to be upgraded]  VALID
  Oracle Java Packages                   [to be upgraded]  VALID
  Oracle Multimedia                      [to be upgraded]  VALID
  Oracle Spatial                         [to be upgraded]  VALID
  Oracle OLAP API                        [to be upgraded]  VALID

==============
BEFORE UPGRADE
==============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  1.  Run 12.2.0.1.0 $ORACLE_HOME/rdbms/admin/utlrp.sql to recompile invalid
      objects.  You can view the individual invalid objects with

        SET SERVEROUTPUT ON;
        EXECUTE DBMS_PREUP.INVALID_OBJECTS;

      4 objects are INVALID.

      There should be no INVALID objects in SYS/SYSTEM or user schemas before
      database upgrade.

  2.  (AUTOFIXUP) Gather stale data dictionary statistics prior to database
      upgrade in off-peak time using:

        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

      Dictionary statistics do not exist or are stale (not up-to-date).

      Dictionary statistics help the Oracle optimizer find efficient SQL
      execution plans and are essential for proper upgrade timing. Oracle
      recommends gathering dictionary statistics in the last 24 hours before
      database upgrade.

      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  INFORMATION ONLY
  ================
  3.  To help you keep track of your tablespace allocations, the following
      AUTOEXTEND tablespaces are expected to successfully EXTEND during the
      upgrade process.

                                                 Min Size
      Tablespace                        Size     For Upgrade
      ----------                     ----------  -----------
      SYSAUX                             890 MB       892 MB
      SYSTEM                             830 MB       942 MB
      UNDOTBS1                            75 MB       439 MB

      Minimum tablespace sizes for upgrade are estimates.

  4.  No action needed.

      Using default parallel upgrade options, this CDB with 2 PDBs will first
      upgrade the CDB$ROOT, and then upgrade at most 1 PDBs at a time using 2
      parallel processes per PDB.

      The number of PDBs upgraded in parallel and the number of parallel
      processes per PDB can be adjusted as described in Database Upgrade Guide.

  5.  Check the Oracle Backup and Recovery User's Guide for information on how
      to manage an RMAN recovery catalog schema.

      If you are using a version of the recovery catalog schema that is older
      than that required by the RMAN client version, then you must upgrade the
      catalog schema.

      It is good practice to have the catalog schema the same or higher version
      than the RMAN client version you are using.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database ORCL container CDB$ROOT
  which are identified above as BEFORE UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/dboracle/upgrade/preupgrade_fixups.sql

=============
AFTER UPGRADE
=============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  6.  Upgrade the database time zone file using the DBMS_DST package.

      The database is using time zone file version 26 and the target 19 release
      ships with time zone file version 32.

      Oracle recommends upgrading to the desired (latest) version of the time
      zone file.  For more information, refer to "Upgrading the Time Zone File
      and Timestamp with Time Zone Data" in the 19 Oracle Database
      Globalization Support Guide.

  7.  Recreate directory objects to remove any symbolic links from directory
      paths.  To identify paths that contain symbolic links before upgrading,
      use OS commands like UNIX file or WINDOWS dir.  After upgrading, run
      $ORACLE_HOME/rdbms/admin/utldirsymlink.sql to identify directory objects
      with symbolic links in the path.

      Found 2 user directory objects to be checked: DBMS_OPTIM_ADMINDIR,
      DBMS_OPTIM_LOGDIR.

      Starting in Release 18c, symbolic links are not allowed in directory
      object paths used with BFILE data types, the UTL_FILE package, or
      external tables.

  8.  (AUTOFIXUP) Gather dictionary statistics after the upgrade using the
      command:

        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

      Oracle recommends gathering dictionary statistics after upgrade.

      Dictionary statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans. After a database
      upgrade, statistics need to be re-gathered as there can now be tables
      that have significantly changed during the upgrade or new tables that do
      not have statistics gathered yet.

  9.  Gather statistics on fixed objects after the upgrade and when there is a
      representative workload on the system using the command:

        EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

      This recommendation is given for all preupgrade runs.

      Fixed object statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans.  Those
      statistics are specific to the Oracle Database release that generates
      them, and can be stale upon database upgrade.

      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database ORCL container CDB$ROOT
  which are identified above as AFTER UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/dboracle/upgrade/postupgrade_fixups.sql


Report generated by Oracle Database Pre-Upgrade Information Tool Version
19.0.0.0.0 Build: 1 on 2021-05-06T17:34:55

Upgrade-To version: 19.0.0.0.0

=======================================
Status of the database prior to upgrade
=======================================
      Database Name:  ORCL
     Container Name:  PDB$SEED
       Container ID:  2
            Version:  12.2.0.1.0
     DB Patch Level:  DATABASE APR 2021 RELEASE UPDATE 12.2.0.1.210420
         Compatible:  12.2.0
          Blocksize:  8192
           Platform:  Linux x86 64-bit
      Timezone File:  26
  Database log mode:  NOARCHIVELOG
           Readonly:  TRUE
            Edition:  EE

  Oracle Component                       Upgrade Action    Current Status
  ----------------                       --------------    --------------
  Oracle Server                          [to be upgraded]  VALID
  JServer JAVA Virtual Machine           [to be upgraded]  VALID
  Oracle XDK for Java                    [to be upgraded]  VALID
  Real Application Clusters              [to be upgraded]  VALID
  Oracle Workspace Manager               [to be upgraded]  VALID
  OLAP Analytic Workspace                [to be upgraded]  VALID
  Oracle Label Security                  [to be upgraded]  VALID
  Oracle Database Vault                  [to be upgraded]  VALID
  Oracle Text                            [to be upgraded]  VALID
  Oracle XML Database                    [to be upgraded]  VALID
  Oracle Java Packages                   [to be upgraded]  VALID
  Oracle Multimedia                      [to be upgraded]  VALID
  Oracle Spatial                         [to be upgraded]  VALID
  Oracle OLAP API                        [to be upgraded]  VALID

==============
BEFORE UPGRADE
==============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  1.  (AUTOFIXUP) Gather stale data dictionary statistics prior to database
      upgrade in off-peak time using:

        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

      Dictionary statistics do not exist or are stale (not up-to-date).

      Dictionary statistics help the Oracle optimizer find efficient SQL
      execution plans and are essential for proper upgrade timing. Oracle
      recommends gathering dictionary statistics in the last 24 hours before
      database upgrade.

      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  2.  (AUTOFIXUP) Gather statistics on fixed objects prior the upgrade.

      None of the fixed object tables have had stats collected.

      Gathering statistics on fixed objects, if none have been gathered yet, is
      recommended prior to upgrading.

      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  INFORMATION ONLY
  ================
  3.  To help you keep track of your tablespace allocations, the following
      AUTOEXTEND tablespaces are expected to successfully EXTEND during the
      upgrade process.

                                                 Min Size
      Tablespace                        Size     For Upgrade
      ----------                     ----------  -----------
      SYSAUX                             350 MB       500 MB
      SYSTEM                             260 MB       371 MB
      TEMP                                64 MB       150 MB
      UNDOTBS1                           100 MB       439 MB

      Minimum tablespace sizes for upgrade are estimates.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database ORCL container PDB$SEED
  which are identified above as BEFORE UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/dboracle/upgrade/preupgrade_fixups.sql

=============
AFTER UPGRADE
=============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  4.  Upgrade the database time zone file using the DBMS_DST package.

      The database is using time zone file version 26 and the target 19 release
      ships with time zone file version 32.

      Oracle recommends upgrading to the desired (latest) version of the time
      zone file.  For more information, refer to "Upgrading the Time Zone File
      and Timestamp with Time Zone Data" in the 19 Oracle Database
      Globalization Support Guide.

  5.  Recreate directory objects to remove any symbolic links from directory
      paths.  To identify paths that contain symbolic links before upgrading,
      use OS commands like UNIX file or WINDOWS dir.  After upgrading, run
      $ORACLE_HOME/rdbms/admin/utldirsymlink.sql to identify directory objects
      with symbolic links in the path.

      Found 2 user directory objects to be checked: DBMS_OPTIM_ADMINDIR,
      DBMS_OPTIM_LOGDIR.

      Starting in Release 18c, symbolic links are not allowed in directory
      object paths used with BFILE data types, the UTL_FILE package, or
      external tables.

  6.  (AUTOFIXUP) Gather dictionary statistics after the upgrade using the
      command:

        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

      Oracle recommends gathering dictionary statistics after upgrade.

      Dictionary statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans. After a database
      upgrade, statistics need to be re-gathered as there can now be tables
      that have significantly changed during the upgrade or new tables that do
      not have statistics gathered yet.

  7.  Gather statistics on fixed objects after the upgrade and when there is a
      representative workload on the system using the command:

        EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

      This recommendation is given for all preupgrade runs.

      Fixed object statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans.  Those
      statistics are specific to the Oracle Database release that generates
      them, and can be stale upon database upgrade.

      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database ORCL container PDB$SEED
  which are identified above as AFTER UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/dboracle/upgrade/postupgrade_fixups.sql


Report generated by Oracle Database Pre-Upgrade Information Tool Version
19.0.0.0.0 Build: 1 on 2021-05-06T17:36:29

Upgrade-To version: 19.0.0.0.0

=======================================
Status of the database prior to upgrade
=======================================
      Database Name:  ORCL
     Container Name:  PDBORCL
       Container ID:  3
            Version:  12.2.0.1.0
     DB Patch Level:  DATABASE APR 2021 RELEASE UPDATE 12.2.0.1.210420
         Compatible:  12.2.0
          Blocksize:  8192
           Platform:  Linux x86 64-bit
      Timezone File:  26
  Database log mode:  NOARCHIVELOG
           Readonly:  FALSE
            Edition:  EE

  Oracle Component                       Upgrade Action    Current Status
  ----------------                       --------------    --------------
  Oracle Server                          [to be upgraded]  VALID
  JServer JAVA Virtual Machine           [to be upgraded]  VALID
  Oracle XDK for Java                    [to be upgraded]  VALID
  Real Application Clusters              [to be upgraded]  VALID
  Oracle Workspace Manager               [to be upgraded]  VALID
  OLAP Analytic Workspace                [to be upgraded]  VALID
  Oracle Label Security                  [to be upgraded]  VALID
  Oracle Database Vault                  [to be upgraded]  VALID
  Oracle Text                            [to be upgraded]  VALID
  Oracle XML Database                    [to be upgraded]  VALID
  Oracle Java Packages                   [to be upgraded]  VALID
  Oracle Multimedia                      [to be upgraded]  VALID
  Oracle Spatial                         [to be upgraded]  VALID
  Oracle OLAP API                        [to be upgraded]  VALID

==============
BEFORE UPGRADE
==============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  1.  (AUTOFIXUP) Gather stale data dictionary statistics prior to database
      upgrade in off-peak time using:

        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

      Dictionary statistics do not exist or are stale (not up-to-date).

      Dictionary statistics help the Oracle optimizer find efficient SQL
      execution plans and are essential for proper upgrade timing. Oracle
      recommends gathering dictionary statistics in the last 24 hours before
      database upgrade.

      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  INFORMATION ONLY
  ================
  2.  To help you keep track of your tablespace allocations, the following
      AUTOEXTEND tablespaces are expected to successfully EXTEND during the
      upgrade process.

                                                 Min Size
      Tablespace                        Size     For Upgrade
      ----------                     ----------  -----------
      SYSAUX                             370 MB       500 MB
      SYSTEM                             270 MB       380 MB
      TEMP                               132 MB       150 MB
      UNDOTBS1                           100 MB       439 MB

      Minimum tablespace sizes for upgrade are estimates.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database ORCL container PDBORCL
  which are identified above as BEFORE UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/dboracle/upgrade/preupgrade_fixups.sql

=============
AFTER UPGRADE
=============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  3.  Upgrade the database time zone file using the DBMS_DST package.

      The database is using time zone file version 26 and the target 19 release
      ships with time zone file version 32.

      Oracle recommends upgrading to the desired (latest) version of the time
      zone file.  For more information, refer to "Upgrading the Time Zone File
      and Timestamp with Time Zone Data" in the 19 Oracle Database
      Globalization Support Guide.

  4.  Recreate directory objects to remove any symbolic links from directory
      paths.  To identify paths that contain symbolic links before upgrading,
      use OS commands like UNIX file or WINDOWS dir.  After upgrading, run
      $ORACLE_HOME/rdbms/admin/utldirsymlink.sql to identify directory objects
      with symbolic links in the path.

      Found 2 user directory objects to be checked: DBMS_OPTIM_ADMINDIR,
      DBMS_OPTIM_LOGDIR.

      Starting in Release 18c, symbolic links are not allowed in directory
      object paths used with BFILE data types, the UTL_FILE package, or
      external tables.

  5.  (AUTOFIXUP) Gather dictionary statistics after the upgrade using the
      command:

        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

      Oracle recommends gathering dictionary statistics after upgrade.

      Dictionary statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans. After a database
      upgrade, statistics need to be re-gathered as there can now be tables
      that have significantly changed during the upgrade or new tables that do
      not have statistics gathered yet.

  6.  Gather statistics on fixed objects after the upgrade and when there is a
      representative workload on the system using the command:

        EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

      This recommendation is given for all preupgrade runs.

      Fixed object statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans.  Those
      statistics are specific to the Oracle Database release that generates
      them, and can be stale upon database upgrade.

      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database ORCL container PDBORCL
  which are identified above as AFTER UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/dboracle/upgrade/postupgrade_fixups.sql

I have run utlrp to compile the invalid objects and the following script.

[oracle@OEL7N1 admin]$ $ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/rdbms/admin $ORACLE_HOME/rdbms/admin/catcon.pl -l /dboracle/upgrade/ -b preup_orcl /dboracle/upgrade/preupgrade_fixups.sql
catcon: ALL catcon-related output will be written to [/dboracle/upgrade//preup_orcl_catcon_20480.lst]
catcon: See [/dboracle/upgrade//preup_orcl*.log] files for output generated by scripts
catcon: See [/dboracle/upgrade//preup_orcl_*.lst] files for spool files, if any

catcon.pl: completed successfully

Let's go the next step.of backing up the database and creating a guranteed restore point.

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     20
Next log sequence to archive   21
Current log sequence           21

SQL> create restore point before_upgrade_19c guarantee flashback database;

Restore point created.

SQL> select NAME,GUARANTEE_FLASHBACK_DATABASE,TIME from V$restore_point;

NAME                   GUA TIME
---------------------- --- -----------------------------------
BEFORE_UPGRADE_19C     YES 07-MAY-21 06.44.00.000000000 AM

Some more checks before upgrade


Check the timezone version.


SQL> SELECT version FROM v$timezone_file;

   VERSION
----------
        26

Disable scheduler jobs.

set pagesize 2000
set lines 2000
set long 99999
select owner,JOB_NAME,ENABLED,state from dba_scheduler_jobs;

OWNER                JOB_NAME                       ENABL STATE
-------------------- ------------------------------ ----- ---------------
SYS                  PURGE_LOG                      TRUE  SCHEDULED
SYS                  FILE_WATCHER                   FALSE DISABLED
SYS                  PMO_DEFERRED_GIDX_MAINT_JOB    TRUE  SCHEDULED
SYS                  CLEANUP_NON_EXIST_OBJ          TRUE  SCHEDULED
SYS                  CLEANUP_ONLINE_IND_BUILD       TRUE  SCHEDULED
SYS                  CLEANUP_TAB_IOT_PMO            TRUE  SCHEDULED
SYS                  FILE_SIZE_UPD                  TRUE  SCHEDULED
SYS                  ORA$AUTOTASK_CLEAN             TRUE  SCHEDULED
SYS                  HM_CREATE_OFFLINE_DICTIONARY   FALSE DISABLED
SYS                  DRA_REEVALUATE_OPEN_FAILURES   TRUE  SCHEDULED
SYS                  ORA$PREPLUGIN_BACKUP_JOB       FALSE DISABLED
SYS                  BSLN_MAINTAIN_STATS_JOB        TRUE  SCHEDULED
SYS                  FGR$AUTOPURGE_JOB              FALSE DISABLED
SYS                  RSE$CLEAN_RECOVERABLE_SCRIPT   TRUE  SCHEDULED
SYS                  SM$CLEAN_AUTO_SPLIT_MERGE      TRUE  SCHEDULED
SYS                  LOAD_OPATCH_INVENTORY          FALSE DISABLED
SYS                  XMLDB_NFS_CLEANUP_JOB          FALSE DISABLED
SYS                  CLEANUP_TRANSIENT_TYPE         TRUE  SCHEDULED
SYS                  CLEANUP_TRANSIENT_PKG          TRUE  SCHEDULED
SYS                  CLEANUP_ONLINE_PMO             TRUE  SCHEDULED
SYS                  LOAD_OPATCH_INVENTORY_2        FALSE DISABLED
SYS                  LOAD_OPATCH_INVENTORY_1        FALSE DISABLED
ORACLE_OCM           MGMT_CONFIG_JOB                TRUE  SCHEDULED
ORACLE_OCM           MGMT_STATS_CONFIG_JOB          TRUE  SCHEDULED

24 rows selected.

Verify system and sys default tablespace.(Both should be system tablespace)

SQL> SELECT username, default_tablespace
FROM dba_users
WHERE username in ('SYS','SYSTEM');  2    3

USERNAME                       DEFAULT_TABLESPACE
------------------------------ ------------------------------
SYS                            SYSTEM
SYSTEM                         SYSTEM

Check whether there are any externally authenticated SSL users

SQL> SELECT name FROM sys.user$
  2  WHERE ext_username IS NOT NULL
AND password = 'GLOBAL';  3

no rows selected

Review and Remove any unnecessary hidden parameters.

SQL> SELECT name, value from SYS.V$PARAMETER WHERE name LIKE '\_%' ESCAPE '\' order by name;

no rows selected

Upgrade Process :


Stop database from 12.2 oracle home and remove the database from oracle restart.

[oracle@OEL7N1 ~]$ srvctl config
orcl
[oracle@OEL7N1 ~]$ srvctl status database -d orcl -v
Instance orcl1 is running on node oel7n1 with online services pdborcl_srv. Instance status: Open.
Instance orcl2 is running on node oel7n2 with online services pdborcl_srv. Instance status: Open.
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl stop database -d orcl
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl status database -d orcl -v
Instance orcl1 is not running on node oel7n1
Instance orcl2 is not running on node oel7n2
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl remove database -d orcl -f

Let's set 19c environment.

[oracle@OEL7N1 ~]$ echo $ORACLE_HOME
/dboracle/app/oracle/product/19.0/dbhome_1
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ echo $PATH
/dboracle/app/oracle/product/19.0/dbhome_1:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oracle/.local/bin:/home/oracle/bin:/dboracle/app/oracle/product/12.2.0/dbhome_1/bin

Need to copy spfile and pwd file in dbs location of 19c home.

[oracle@OEL7N1 ~]$ . oraenv
ORACLE_SID = [orcl1] ? +ASM1
The Oracle base has been set to /u01/app/grid
[oracle@OEL7N1 ~]$ asmcmd cp +DATA/ORCL/PARAMETERFILE/spfile.272.1070782447 /dboracle/app/oracle/product/19.0/dbhome_1/dbs/spfileorcl1.ora
copying +DATA/ORCL/PARAMETERFILE/spfile.272.1070782447 -> /dboracle/app/oracle/product/19.0/dbhome_1/dbs/spfileorcl1.ora
[oracle@OEL7N1 ~]$ asmcmd cp +DATA/ORCL/PASSWORD/pwdorcl.256.1070782021 /dboracle/app/oracle/product/19.0/dbhome_1/dbs/orapworcl1
copying +DATA/ORCL/PASSWORD/pwdorcl.256.1070782021 -> /dboracle/app/oracle/product/19.0/dbhome_1/dbs/orapworcl1

[oracle@OEL7N1 ~]$ export ORACLE_SID=orcl1
[oracle@OEL7N1 ~]$ export ORACLE_HOME=/dboracle/app/oracle/product/19.0/dbhome_1
[oracle@OEL7N1 ~]$ export PATH=$ORACLE_HOME/bin:$PATH
[oracle@OEL7N1 ~]$ which sqlplus
/dboracle/app/oracle/product/19.0/dbhome_1/bin/sqlplus
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri May 7 13:13:27 2021
Version 19.8.0.0.0

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

Connected to an idle instance.

SQL> startup upgrade
ORACLE instance started.

Total System Global Area 1577055360 bytes
Fixed Size                  9135232 bytes
Variable Size             553648128 bytes
Database Buffers         1006632960 bytes
Redo Buffers                7639040 bytes
Database mounted.
ORA-00603: ORACLE server session terminated by fatal error
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-39701: database must be mounted EXCLUSIVE for UPGRADE or DOWNGRADE
Process ID: 32539
Session ID: 176 Serial number: 31358


SQL> alter system set cluster_database=false scope=spfile sid='*';
ERROR:
ORA-03114: not connected to ORACLE


SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.8.0.0.0
sql
[oracle@OEL7N1 ~]$ sql

SQLcl: Release 19.1 Production on Fri May 07 13:23:18 2021

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

Username? (''?) / as sysdba
Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area   1577055360 bytes
Fixed Size                    9135232 bytes
Variable Size               553648128 bytes
Database Buffers           1006632960 bytes
Redo Buffers                  7639040 bytes
Database mounted.
SQL> alter system set cluster_database=false scope=spfile sid='*';

System altered.

SQL> shut immediate
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
SQL> exit
[oracle@OEL7N1 ~]$ echo $ORACLE_HOME
/dboracle/app/oracle/product/19.0/dbhome_1
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri May 7 13:25:30 2021
Version 19.8.0.0.0

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

Connected to an idle instance.

SQL> startup upgrade
ORACLE instance started.

Total System Global Area 1577055360 bytes
Fixed Size                  9135232 bytes
Variable Size             553648128 bytes
Database Buffers         1006632960 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.
SQL>
SQL> alter pluggable database all open upgrade;
Pluggable database altered.

SQL> set pages 9999 lines 300
col OPEN_MODE for a10
col HOST_NAME for a30
select name DB_NAME,HOST_NAME,DATABASE_ROLE,OPEN_MODE,log_mode,version DB_VERSION,LOGINS,to_char(STARTUP_TIME,'DD-MON-YYYY HH24:MI:SS') "DB UP TIME" from v$database,v$instance;SQL> SQL> SQL>

DB_NAME   HOST_NAME                      DATABASE_ROLE    OPEN_MODE  LOG_MODE     DB_VERSION        LOGINS     DB UP TIME
--------- ------------------------------ ---------------- ---------- ------------ ----------------- ---------- -----------------------------
ORCL      OEL7N1.localdomain             PRIMARY          READ WRITE ARCHIVELOG   19.0.0.0.0        RESTRICTED 07-MAY-2021 13:25:46

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MIGRATE    YES
         3 PDBORCL                        MIGRATE    YES
SQL> select name,open_mode,cdb,version,status from v$database,v$instance;

NAME      OPEN_MODE  CDB VERSION           STATUS
--------- ---------- --- ----------------- ------------
ORCL      READ WRITE YES 19.0.0.0.0        OPEN MIGRATE

Now, Actual Upgrade.

[oracle@OEL7N1 bin]$ pwd
/dboracle/app/oracle/product/19.0/dbhome_1/bin
[oracle@OEL7N1 bin]$ ./dbupgrade
=== Took a long time. Pasting last few lines of log

catcon::sureunlink: verify that the file really no longer exists

catcon::sureunlink: confirmed that /dboracle/app/oracle/product/19.0/dbhome_1/cfgtoollogs/orcl/upgrade20210507133748/catupgrdpdborcl_catcon_kill_sess_16618_ALL.sql no longer exists after 1 attempts

catcon::catconWrapUp: done


     Time: 7355s For CDB$ROOT
     Time: 14641s For PDB(s)

Grand Total Time: 21996s

 LOG FILES: (/dboracle/app/oracle/product/19.0/dbhome_1/cfgtoollogs/orcl/upgrade20210507133748/catupgrdcdbroot*.log)

Upgrade Summary Report Located in:
/dboracle/app/oracle/product/19.0/dbhome_1/cfgtoollogs/orcl/upgrade20210507133748/upg_summary.log

Grand Total Upgrade Time:    [0d:6h:6m:36s]

Let's check the upgrade summary

[oracle@OEL7N1 upgrade20210507133748]$ cat upg_summary.log

Oracle Database Release 19 Post-Upgrade Status Tool    05-07-2021 15:38:3
Container Database: ORCL
[CON_ID: 1 => CDB$ROOT]

Component                               Current         Full     Elapsed Time
Name                                    Status          Version  HH:MM:SS

Oracle Server                          UPGRADED      19.8.0.0.0  00:41:45
JServer JAVA Virtual Machine           UPGRADED      19.8.0.0.0  00:06:03
Oracle XDK                             UPGRADED      19.8.0.0.0  00:02:25
Oracle Database Java Packages          UPGRADED      19.8.0.0.0  00:00:29
OLAP Analytic Workspace                UPGRADED      19.8.0.0.0  00:00:54
Oracle Label Security                  UPGRADED      19.8.0.0.0  00:00:34
Oracle Database Vault                  UPGRADED      19.8.0.0.0  00:01:43
Oracle Text                            UPGRADED      19.8.0.0.0  00:02:51
Oracle Workspace Manager               UPGRADED      19.8.0.0.0  00:03:54
Oracle Real Application Clusters       UPGRADED      19.8.0.0.0  00:00:02
Oracle XML Database                    UPGRADED      19.8.0.0.0  00:05:30
Oracle Multimedia                      UPGRADED      19.8.0.0.0  00:03:09
Spatial                                 LOADING      19.8.0.0.0  00:19:03
Oracle OLAP API                         INVALID      19.8.0.0.0  00:00:36
Datapatch                                                        00:25:59
Final Actions                                                    00:26:26
Post Upgrade                                                     00:00:38

Total Upgrade Time: 01:57:48 [CON_ID: 1 => CDB$ROOT]

Database time zone version is 26. It is older than current release time
zone version 32. Time zone upgrade is needed using the DBMS_DST package.


Oracle Database Release 19 Post-Upgrade Status Tool    05-07-2021 17:55:5
Container Database: ORCL
[CON_ID: 2 => PDB$SEED]

Component                               Current         Full     Elapsed Time
Name                                    Status          Version  HH:MM:SS

Oracle Server                             VALID      19.8.0.0.0  01:00:24
JServer JAVA Virtual Machine              VALID      19.8.0.0.0  00:03:58
Oracle XDK                                VALID      19.8.0.0.0  00:02:04
Oracle Database Java Packages             VALID      19.8.0.0.0  00:00:25
OLAP Analytic Workspace                   VALID      19.8.0.0.0  00:01:03
Oracle Label Security                     VALID      19.8.0.0.0  00:00:18
Oracle Database Vault                     VALID      19.8.0.0.0  00:04:50
Oracle Text                               VALID      19.8.0.0.0  00:01:01
Oracle Workspace Manager                  VALID      19.8.0.0.0  00:01:06
Oracle Real Application Clusters          VALID      19.8.0.0.0  00:00:00
Oracle XML Database                       VALID      19.8.0.0.0  00:04:27
Oracle Multimedia                         VALID      19.8.0.0.0  00:01:19
Spatial                                   VALID      19.8.0.0.0  00:13:23
Oracle OLAP API                           VALID      19.8.0.0.0  00:00:34
Datapatch                                                        00:22:18
Final Actions                                                    00:22:41
Post Upgrade                                                     00:02:15
Post Compile                                                     00:11:36

Total Upgrade Time: 02:12:56 [CON_ID: 2 => PDB$SEED * ]
Asterisks denotes compilation time has been included during the upgrade process.

Database time zone version is 26. It is older than current release time
zone version 32. Time zone upgrade is needed using the DBMS_DST package.


Oracle Database Release 19 Post-Upgrade Status Tool    05-07-2021 19:44:1
Container Database: ORCL
[CON_ID: 3 => PDBORCL]

Component                               Current         Full     Elapsed Time
Name                                    Status          Version  HH:MM:SS

Oracle Server                          UPGRADED      19.8.0.0.0  00:43:31
JServer JAVA Virtual Machine           UPGRADED      19.8.0.0.0  00:04:51
Oracle XDK                             UPGRADED      19.8.0.0.0  00:03:41
Oracle Database Java Packages          UPGRADED      19.8.0.0.0  00:00:36
OLAP Analytic Workspace                UPGRADED      19.8.0.0.0  00:01:02
Oracle Label Security                  UPGRADED      19.8.0.0.0  00:00:30
Oracle Database Vault                  UPGRADED      19.8.0.0.0  00:05:33
Oracle Text                            UPGRADED      19.8.0.0.0  00:00:39
Oracle Workspace Manager               UPGRADED      19.8.0.0.0  00:00:57
Oracle Real Application Clusters       UPGRADED      19.8.0.0.0  00:00:02
Oracle XML Database                    UPGRADED      19.8.0.0.0  00:04:35
Oracle Multimedia                      UPGRADED      19.8.0.0.0  00:01:17
Spatial                                 LOADING      19.8.0.0.0  00:14:41
Oracle OLAP API                           VALID      19.8.0.0.0  00:00:45
Datapatch                                                        00:18:56
Final Actions                                                    00:19:19
Post Upgrade                                                     00:02:22

Total Upgrade Time: 01:45:50 [CON_ID: 3 => PDBORCL]

Database time zone version is 26. It is older than current release time
zone version 32. Time zone upgrade is needed using the DBMS_DST package.


Upgrade Times Sorted In Descending Order

Total Upgrade Time: 02:12:56 [CON_ID: 2 => PDB$SEED * ]
Total Upgrade Time: 01:57:48 [CON_ID: 1 => CDB$ROOT]
Total Upgrade Time: 01:45:50 [CON_ID: 3 => PDBORCL]
Grand Total Upgrade Time:    [0d:6h:6m:36s]
[oracle@OEL7N1 upgrade20210507133748]$

Let's check the version and component state.


SQL> select BANNER from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> col COMP_ID for a10
SQL> col COMP_NAME for a40
col VERSION for a15
set lines 180
set pages 999
select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry;SQL> SQL> SQL> SQL>

COMP_ID    COMP_NAME                                VERSION         STATUS
---------- ---------------------------------------- --------------- --------------------------------------------
CATALOG    Oracle Database Catalog Views            19.0.0.0.0      UPGRADED
CATPROC    Oracle Database Packages and Types       19.0.0.0.0      UPGRADED
JAVAVM     JServer JAVA Virtual Machine             19.0.0.0.0      UPGRADED
XML        Oracle XDK                               19.0.0.0.0      UPGRADED
CATJAVA    Oracle Database Java Packages            19.0.0.0.0      UPGRADED
APS        OLAP Analytic Workspace                  19.0.0.0.0      UPGRADED
RAC        Oracle Real Application Clusters         19.0.0.0.0      UPGRADED
XDB        Oracle XML Database                      19.0.0.0.0      UPGRADED
OWM        Oracle Workspace Manager                 19.0.0.0.0      UPGRADED
CONTEXT    Oracle Text                              19.0.0.0.0      UPGRADED
ORDIM      Oracle Multimedia                        19.0.0.0.0      UPGRADED
SDO        Spatial                                  19.0.0.0.0      LOADING
XOQ        Oracle OLAP API                          19.0.0.0.0      INVALID
OLS        Oracle Label Security                    19.0.0.0.0      UPGRADED
DV         Oracle Database Vault                    19.0.0.0.0      UPGRADED

15 rows selected.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDBORCL                        MOUNTED

SQL> set serveroutput on
SQL> exec sys.VALIDATE_SDO();

PL/SQL procedure successfully completed.

SQL> select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry where COMP_NAME='Spatial';

COMP_ID    COMP_NAME                                VERSION         STATUS
---------- ---------------------------------------- --------------- --------------------------------------------
SDO        Spatial                                  19.0.0.0.0      VALID


Run the following from both cdb and pdb


@$ORACLE_HOME/rdbms/admin/catuppst.sql 

Let's run the post upgrade script and utlrp.

$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/rdbms/admin $ORACLE_HOME/rdbms/admin/catcon.pl -l /dboracle/upgrade/ -b postup_orcl /dboracle/upgrade/postupgrade_fixups.sql    

@?/rdbms/admin/utlrp

After running utlrp, pdb components are fine.

COMP_ID                        COMP_NAME                                VERSION         STATUS
------------------------------ ---------------------------------------- --------------- -----------
CATALOG                        Oracle Database Catalog Views            19.0.0.0.0      VALID
CATPROC                        Oracle Database Packages and Types       19.0.0.0.0      VALID
JAVAVM                         JServer JAVA Virtual Machine             19.0.0.0.0      VALID
XML                            Oracle XDK                               19.0.0.0.0      VALID
CATJAVA                        Oracle Database Java Packages            19.0.0.0.0      VALID
APS                            OLAP Analytic Workspace                  19.0.0.0.0      VALID
RAC                            Oracle Real Application Clusters         19.0.0.0.0      VALID
XDB                            Oracle XML Database                      19.0.0.0.0      VALID
OWM                            Oracle Workspace Manager                 19.0.0.0.0      VALID
CONTEXT                        Oracle Text                              19.0.0.0.0      VALID
ORDIM                          Oracle Multimedia                        19.0.0.0.0      VALID
SDO                            Spatial                                  19.0.0.0.0      VALID
XOQ                            Oracle OLAP API                          19.0.0.0.0      VALID
OLS                            Oracle Label Security                    19.0.0.0.0      VALID
DV                             Oracle Database Vault                    19.0.0.0.0      VALID

15 rows selected.

SQL> show con_name

CON_NAME
------------------------------
PDBORCL

All components are fine in cdb also.

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry;

COMP_ID                        COMP_NAME                                VERSION         STATUS
------------------------------ ---------------------------------------- --------------- --------------------------------------------
CATALOG                        Oracle Database Catalog Views            19.0.0.0.0      VALID
CATPROC                        Oracle Database Packages and Types       19.0.0.0.0      VALID
JAVAVM                         JServer JAVA Virtual Machine             19.0.0.0.0      VALID
XML                            Oracle XDK                               19.0.0.0.0      VALID
CATJAVA                        Oracle Database Java Packages            19.0.0.0.0      VALID
APS                            OLAP Analytic Workspace                  19.0.0.0.0      VALID
RAC                            Oracle Real Application Clusters         19.0.0.0.0      VALID
XDB                            Oracle XML Database                      19.0.0.0.0      VALID
OWM                            Oracle Workspace Manager                 19.0.0.0.0      VALID
CONTEXT                        Oracle Text                              19.0.0.0.0      VALID
ORDIM                          Oracle Multimedia                        19.0.0.0.0      VALID
SDO                            Spatial                                  19.0.0.0.0      VALID
XOQ                            Oracle OLAP API                          19.0.0.0.0      VALID
OLS                            Oracle Label Security                    19.0.0.0.0      VALID
DV                             Oracle Database Vault                    19.0.0.0.0      VALID

15 rows selected.

All components are in valid state in pdb seed also.


Let's fix the timezone now.


Download DST for timezone upgrade scripts from Doc ID 1585343.1

sudip@DESKTOP-RDIUEUO MINGW64 /c/Softwares
$ scp DBMS_DST_scriptsV1.9.zip oracle@192.168.126.11:/dboracle/software
oracle@192.168.126.11's password:
DBMS_DST_scriptsV1.9.zip                                                                                                                                      100%   16KB   1.0MB/s   00:00


[oracle@OEL7N1 software]$ cd timezone
[oracle@OEL7N1 timezone]$ ls -ltr
total 16
-rw-r--r-- 1 oracle oinstall 16095 May  8 05:09 DBMS_DST_scriptsV1.9.zip
[oracle@OEL7N1 timezone]$ unzip *
Archive:  DBMS_DST_scriptsV1.9.zip
   creating: DBMS_DST_scriptsV1.9/
  inflating: DBMS_DST_scriptsV1.9/countstarTSTZ.sql
  inflating: DBMS_DST_scriptsV1.9/countstatsTSTZ.sql
  inflating: DBMS_DST_scriptsV1.9/upg_tzv_apply.sql
  inflating: DBMS_DST_scriptsV1.9/upg_tzv_check.sql
[oracle@OEL7N1 timezone]$ ls -ltr
total 16
drwxr-xr-x 2 oracle oinstall   107 Mar 14  2018 DBMS_DST_scriptsV1.9
-rw-r--r-- 1 oracle oinstall 16095 May  8 05:09 DBMS_DST_scriptsV1.9.zip
[oracle@OEL7N1 timezone]$ cd DBMS_DST_scriptsV1.9/
[oracle@OEL7N1 DBMS_DST_scriptsV1.9]$ ls -ltr
total 68
-rw-r--r-- 1 oracle oinstall 31010 Aug 22  2014 upg_tzv_check.sql
-rw-r--r-- 1 oracle oinstall 19502 Aug 22  2014 upg_tzv_apply.sql
-rw-r--r-- 1 oracle oinstall  6294 Jan  8  2015 countstarTSTZ.sql
-rw-r--r-- 1 oracle oinstall  7213 Mar 17  2018 countstatsTSTZ.sql

Let's run it.

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> @countstatsTSTZ.sql
.
Amount of TSTZ data using num_rows stats info in DBA_TABLES.
.
For SYS tables first...
Note: empty tables are not listed.
Stat date  - Owner.Tablename.Columnname - num_rows
02/05/2021 - SYS.AQ$_ALERT_QT_S.CREATION_TIME - 4
02/05/2021 - SYS.AQ$_ALERT_QT_S.DELETION_TIME - 4
02/05/2021 - SYS.AQ$_ALERT_QT_S.MODIFICATION_TIME - 4
02/05/2021 - SYS.AQ$_AQ$_MEM_MC_S.CREATION_TIME - 3
02/05/2021 - SYS.AQ$_AQ$_MEM_MC_S.DELETION_TIME - 3
02/05/2021 - SYS.AQ$_AQ$_MEM_MC_S.MODIFICATION_TIME - 3
02/05/2021 - SYS.AQ$_AQ_PROP_TABLE_S.CREATION_TIME - 1
02/05/2021 - SYS.AQ$_AQ_PROP_TABLE_S.DELETION_TIME - 1
02/05/2021 - SYS.AQ$_AQ_PROP_TABLE_S.MODIFICATION_TIME - 1
02/05/2021 - SYS.AQ$_ORA$PREPLUGIN_BACKUP_QTB_S.CREATION_TIME - 1
02/05/2021 - SYS.AQ$_ORA$PREPLUGIN_BACKUP_QTB_S.DELETION_TIME - 1
02/05/2021 - SYS.AQ$_ORA$PREPLUGIN_BACKUP_QTB_S.MODIFICATION_TIME - 1
07/05/2021 - SYS.AQ$_PDB_MON_EVENT_QTABLE$_S.CREATION_TIME - 1
07/05/2021 - SYS.AQ$_PDB_MON_EVENT_QTABLE$_S.DELETION_TIME - 1
07/05/2021 - SYS.AQ$_PDB_MON_EVENT_QTABLE$_S.MODIFICATION_TIME - 1
02/05/2021 - SYS.AQ$_SCHEDULER$_EVENT_QTAB_S.CREATION_TIME - 3
02/05/2021 - SYS.AQ$_SCHEDULER$_EVENT_QTAB_S.DELETION_TIME - 3
02/05/2021 - SYS.AQ$_SCHEDULER$_EVENT_QTAB_S.MODIFICATION_TIME - 3
02/05/2021 - SYS.AQ$_SCHEDULER$_REMDB_JOBQTAB_S.CREATION_TIME - 1
02/05/2021 - SYS.AQ$_SCHEDULER$_REMDB_JOBQTAB_S.DELETION_TIME - 1
02/05/2021 - SYS.AQ$_SCHEDULER$_REMDB_JOBQTAB_S.MODIFICATION_TIME - 1
02/05/2021 - SYS.AQ$_SCHEDULER_FILEWATCHER_QT_S.CREATION_TIME - 1
02/05/2021 - SYS.AQ$_SCHEDULER_FILEWATCHER_QT_S.DELETION_TIME - 1
02/05/2021 - SYS.AQ$_SCHEDULER_FILEWATCHER_QT_S.MODIFICATION_TIME - 1
07/05/2021 - SYS.AQ$_SUBSCRIBER_TABLE.CREATION_TIME - 1
07/05/2021 - SYS.AQ$_SUBSCRIBER_TABLE.DELETION_TIME - 1
07/05/2021 - SYS.AQ$_SUBSCRIBER_TABLE.MODIFICATION_TIME - 1
02/05/2021 - SYS.AQ$_SYS$SERVICE_METRICS_TAB_S.CREATION_TIME - 4
02/05/2021 - SYS.AQ$_SYS$SERVICE_METRICS_TAB_S.DELETION_TIME - 4
02/05/2021 - SYS.AQ$_SYS$SERVICE_METRICS_TAB_S.MODIFICATION_TIME - 4
07/05/2021 - SYS.ATSK$_SCHEDULE_CONTROL.MRCT_TASK_TIME_TZ - 2
08/05/2021 - SYS.KET$_AUTOTASK_STATUS.ABA_START_TIME - 1
08/05/2021 - SYS.KET$_AUTOTASK_STATUS.ABA_STATE_TIME - 1
08/05/2021 - SYS.KET$_AUTOTASK_STATUS.MW_RECORD_TIME - 1
08/05/2021 - SYS.KET$_AUTOTASK_STATUS.MW_START_TIME - 1
08/05/2021 - SYS.KET$_AUTOTASK_STATUS.RECONCILE_TIME - 1
07/05/2021 - SYS.KET$_CLIENT_CONFIG.FIELD_2 - 7
07/05/2021 - SYS.KET$_CLIENT_CONFIG.LAST_CHANGE - 7
08/05/2021 - SYS.KET$_CLIENT_TASKS.CURR_WIN_START - 3
08/05/2021 - SYS.KET$_CLIENT_TASKS.LG_DATE - 3
08/05/2021 - SYS.KET$_CLIENT_TASKS.LT_DATE - 3
08/05/2021 - SYS.OPTSTAT_HIST_CONTROL$.SPARE6 - 45
08/05/2021 - SYS.OPTSTAT_HIST_CONTROL$.SVAL2 - 45
07/05/2021 - SYS.OPTSTAT_SNAPSHOT$.TIMESTAMP - 23674
07/05/2021 - SYS.OPTSTAT_USER_PREFS$.CHGTIME - 72
02/05/2021 - SYS.RADM_FPTM$.TSWTZ_COL - 1
02/05/2021 - SYS.REG$.NTFN_GROUPING_START_TIME - 2
02/05/2021 - SYS.REG$.REG_TIME - 2
07/05/2021 - SYS.SCHEDULER$_EVENT_LOG.LOG_DATE - 167
08/05/2021 - SYS.SCHEDULER$_GLOBAL_ATTRIBUTE.ATTR_TSTAMP - 11
08/05/2021 - SYS.SCHEDULER$_JOB.END_DATE - 24
08/05/2021 - SYS.SCHEDULER$_JOB.LAST_ENABLED_TIME - 24
08/05/2021 - SYS.SCHEDULER$_JOB.LAST_END_DATE - 24
08/05/2021 - SYS.SCHEDULER$_JOB.LAST_START_DATE - 24
08/05/2021 - SYS.SCHEDULER$_JOB.NEXT_RUN_DATE - 24
08/05/2021 - SYS.SCHEDULER$_JOB.START_DATE - 24
07/05/2021 - SYS.SCHEDULER$_JOB_RUN_DETAILS.LOG_DATE - 82
07/05/2021 - SYS.SCHEDULER$_JOB_RUN_DETAILS.REQ_START_DATE - 82
07/05/2021 - SYS.SCHEDULER$_JOB_RUN_DETAILS.START_DATE - 82
02/05/2021 - SYS.SCHEDULER$_SCHEDULE.END_DATE - 4
02/05/2021 - SYS.SCHEDULER$_SCHEDULE.REFERENCE_DATE - 4
08/05/2021 - SYS.SCHEDULER$_WINDOW.ACTUAL_START_DATE - 9
08/05/2021 - SYS.SCHEDULER$_WINDOW.END_DATE - 9
08/05/2021 - SYS.SCHEDULER$_WINDOW.LAST_START_DATE - 9
08/05/2021 - SYS.SCHEDULER$_WINDOW.MANUAL_OPEN_TIME - 9
08/05/2021 - SYS.SCHEDULER$_WINDOW.NEXT_START_DATE - 9
08/05/2021 - SYS.SCHEDULER$_WINDOW.START_DATE - 9
08/05/2021 - SYS.SCHEDULER$_WINDOW_DETAILS.LOG_DATE - 4
08/05/2021 - SYS.SCHEDULER$_WINDOW_DETAILS.REQ_START_DATE - 4
08/05/2021 - SYS.SCHEDULER$_WINDOW_DETAILS.START_DATE - 4
08/05/2021 - SYS.STATS_TARGET$.END_TIME - 1056
08/05/2021 - SYS.STATS_TARGET$.START_TIME - 1056
02/05/2021 - SYS.TAB_STATS$.SPARE6 - 1137
07/05/2021 - SYS.WRI$_ALERT_HISTORY.CREATION_TIME - 176
07/05/2021 - SYS.WRI$_ALERT_HISTORY.TIME_SUGGESTED - 176
07/05/2021 - SYS.WRI$_ALERT_OUTSTANDING.CREATION_TIME - 1
07/05/2021 - SYS.WRI$_ALERT_OUTSTANDING.TIME_SUGGESTED - 1
08/05/2021 - SYS.WRI$_OPTSTAT_HISTGRM_HISTORY.SAVTIME - 143392
08/05/2021 - SYS.WRI$_OPTSTAT_HISTGRM_HISTORY.SPARE6 - 143392
07/05/2021 - SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY.SAVTIME - 52520
07/05/2021 - SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY.SPARE6 - 52520
08/05/2021 - SYS.WRI$_OPTSTAT_IND_HISTORY.SAVTIME - 2874
08/05/2021 - SYS.WRI$_OPTSTAT_IND_HISTORY.SPARE6 - 2874
08/05/2021 - SYS.WRI$_OPTSTAT_OPR.END_TIME - 351
08/05/2021 - SYS.WRI$_OPTSTAT_OPR.SPARE6 - 351
08/05/2021 - SYS.WRI$_OPTSTAT_OPR.START_TIME - 351
08/05/2021 - SYS.WRI$_OPTSTAT_OPR_TASKS.END_TIME - 7369
08/05/2021 - SYS.WRI$_OPTSTAT_OPR_TASKS.SPARE6 - 7369
08/05/2021 - SYS.WRI$_OPTSTAT_OPR_TASKS.START_TIME - 7369
08/05/2021 - SYS.WRI$_OPTSTAT_TAB_HISTORY.SAVTIME - 3890
08/05/2021 - SYS.WRI$_OPTSTAT_TAB_HISTORY.SPARE6 - 3890
08/05/2021 - SYS.WRM$_DATABASE_INSTANCE.STARTUP_TIME_TZ - 21
07/05/2021 - SYS.WRM$_PDB_INSTANCE.OPEN_TIME_TZ - 40
07/05/2021 - SYS.WRM$_PDB_INSTANCE.STARTUP_TIME_TZ - 40
07/05/2021 - SYS.WRM$_PDB_IN_SNAP.OPEN_TIME_TZ - 157
08/05/2021 - SYS.WRM$_SNAPSHOT.BEGIN_INTERVAL_TIME_TZ - 111
08/05/2021 - SYS.WRM$_SNAPSHOT.END_INTERVAL_TIME_TZ - 111
26/01/2017 - SYS.XS$PRIN.END_DATE - 15
26/01/2017 - SYS.XS$PRIN.START_DATE - 15
Total numrow of SYS TSTZ columns is : 457198
There are in total 162 non-SYS TSTZ columns.
.
For non-SYS tables ...
Note: empty tables are not listed.
Stat date  - Owner.Tablename.Columnname - num_rows
07/05/2021 - GSMADMIN_INTERNAL.AQ$_CHANGE_LOG_QUEUE_TABLE_S.CREATION_TIME - 1
07/05/2021 - GSMADMIN_INTERNAL.AQ$_CHANGE_LOG_QUEUE_TABLE_S.DELETION_TIME - 1
07/05/2021 - GSMADMIN_INTERNAL.AQ$_CHANGE_LOG_QUEUE_TABLE_S.MODIFICATION_TIME - 1
02/05/2021 - WMSYS.AQ$_WM$EVENT_QUEUE_TABLE_S.CREATION_TIME - 1
02/05/2021 - WMSYS.AQ$_WM$EVENT_QUEUE_TABLE_S.DELETION_TIME - 1
02/05/2021 - WMSYS.AQ$_WM$EVENT_QUEUE_TABLE_S.MODIFICATION_TIME - 1
07/05/2021 - WMSYS.WM$WORKSPACES_TABLE$.CREATETIME - 1
07/05/2021 - WMSYS.WM$WORKSPACES_TABLE$.LAST_CHANGE - 1
Total numrow of non-SYS TSTZ columns is : 8
There are in total 20 non-SYS TSTZ columns.
Total Minutes elapsed : 0
SQL>

SQL> exec dbms_scheduler.purge_log;

PL/SQL procedure successfully completed.

SQL> @upg_tzv_check.sql
INFO: Starting with RDBMS DST update preparation.
INFO: NO actual RDBMS DST update will be done by this script.
INFO: If an ERROR occurs the script will EXIT sqlplus.
INFO: Doing checks for known issues ...
INFO: Database version is 19.0.0.0 .
INFO: Database RDBMS DST version is DSTv26 .
INFO: No known issues detected.
INFO: Now detecting new RDBMS DST version.
A prepare window has been successfully started.
INFO: Newest RDBMS DST version detected is DSTv32 .
INFO: Next step is checking all TSTZ data.
INFO: It might take a while before any further output is seen ...
A prepare window has been successfully ended.
INFO: A newer RDBMS DST version than the one currently used is found.
INFO: Note that NO DST update was yet done.
INFO: Now run upg_tzv_apply.sql to do the actual RDBMS DST update.
INFO: Note that the upg_tzv_apply.sql script will
INFO: restart the database 2 times WITHOUT any confirmation or prompt.


SQL> @upg_tzv_apply.sql
INFO: If an ERROR occurs the script will EXIT sqlplus.
INFO: The database RDBMS DST version will be updated to DSTv32 .
WARNING: This script will restart the database 2 times
WARNING: WITHOUT asking ANY confirmation.
WARNING: Hit control-c NOW if this is not intended.
INFO: Restarting the database in UPGRADE mode to start the DST upgrade.
Database closed.
Database dismounted.
ORACLE instance shut down.
ORACLE instance started.

Total System Global Area 1577055360 bytes
Fixed Size                  9135232 bytes
Variable Size             654311424 bytes
Database Buffers          905969664 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.
INFO: Starting the RDBMS DST upgrade.
INFO: Upgrading all SYS owned TSTZ data.
INFO: It might take time before any further output is seen ...
An upgrade window has been successfully started.
INFO: Restarting the database in NORMAL mode to upgrade non-SYS TSTZ data.
Database closed.
Database dismounted.
ORACLE instance shut down.
ORACLE instance started.

Total System Global Area 1577055360 bytes
Fixed Size                  9135232 bytes
Variable Size             654311424 bytes
Database Buffers          905969664 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.
INFO: Upgrading all non-SYS TSTZ data.
INFO: It might take time before any further output is seen ...
INFO: Do NOT start any application yet that uses TSTZ data!
INFO: Next is a list of all upgraded tables:
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"."SIMULATION_LOG$"
Number of failures: 0
Table list: "DVSYS"."AUDIT_TRAIL$"
Number of failures: 0
INFO: Total failures during update of TSTZ data: 0 .
An upgrade window has been successfully ended.
INFO: Your new Server RDBMS DST version is DSTv32 .
INFO: The RDBMS DST update is successfully finished.
INFO: Make sure to exit this sqlplus session.
INFO: Do not use it for timezone related selects.
SQL> SELECT version FROM v$timezone_file;

   VERSION
----------
##########

1 row selected.

SQL> col version for 99999
SQL> SELECT version FROM v$timezone_file;

VERSION
-------
     32

1 row selected.

SQL>

SQL> @?/rdbms/admin/utlusts.sql TEXT

Oracle Database Release 19 Post-Upgrade Status Tool    05-08-2021 06:24:0
Container Database: ORCL
[CON_ID: 1 => CDB$ROOT]

Component                               Current         Full     Elapsed Time
Name                                    Status          Version  HH:MM:SS

Oracle Server                             VALID      19.8.0.0.0  00:41:45
JServer JAVA Virtual Machine              VALID      19.8.0.0.0  00:06:03
Oracle XDK                                VALID      19.8.0.0.0  00:02:25
Oracle Database Java Packages             VALID      19.8.0.0.0  00:00:29
OLAP Analytic Workspace                   VALID      19.8.0.0.0  00:00:54
Oracle Label Security                     VALID      19.8.0.0.0  00:00:34
Oracle Database Vault                     VALID      19.8.0.0.0  00:01:43
Oracle Text                               VALID      19.8.0.0.0  00:02:51
Oracle Workspace Manager                  VALID      19.8.0.0.0  00:03:54
Oracle Real Application Clusters          VALID      19.8.0.0.0  00:00:02
Oracle XML Database                       VALID      19.8.0.0.0  00:05:30
Oracle Multimedia                         VALID      19.8.0.0.0  00:03:09
Spatial                                   VALID      19.8.0.0.0  00:19:03
Oracle OLAP API                           VALID      19.8.0.0.0  00:00:36
Datapatch                                                        00:25:59
Final Actions                                                    00:26:26
Post Upgrade                                                     00:00:00
Post Compile                                                     00:00:18

Total Upgrade Time: 01:57:29 [CON_ID: 1 => CDB$ROOT]

Database time zone version is 32. It meets current release needs.

Let's start both the instances and add the database in oracle restart.

[oracle@OEL7N1 ~]$ srvctl add database -d orcl -oraclehome /dboracle/app/oracle/product/19.0/dbhome_1 -dbtype RAC -spfile +DATA/ORCL/PARAMETERFILE/spfile.307.1071991167 -pwfile +DATA/ORCL/PASSWORD/pwdorcl.256.1070782021
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl status database -d orcl
Database is not running.
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl add instance -i orcl1 -n OEL7N1 -d orcl
[oracle@OEL7N1 ~]$ srvctl add instance -i orcl2 -n OEL7N2 -d orcl
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl status database -d orcl
Instance orcl1 is not running on node oel7n1
Instance orcl2 is not running on node oel7n2

[oracle@OEL7N1 ~]$ srvctl status database -d orcl
Instance orcl1 is not running on node oel7n1
Instance orcl2 is not running on node oel7n2

[oracle@OEL7N1 ~]$ srvctl start database -d orcl
PRCR-1079 : Failed to start resource ora.orcl.db
CRS-5017: The resource action "ora.orcl.db start" encountered the following error:
ORA-01102: cannot mount database in EXCLUSIVE mode
. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/oel7n1/crs/trace/crsd_oraagent_oracle.trc".

CRS-2674: Start of 'ora.orcl.db' on 'oel7n1' failed
CRS-2632: There are no more servers to try to place resource 'ora.orcl.db' on that would satisfy its placement policy
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl stop database -d orcl
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl remove database -d orcl
Remove the database orcl? (y/[n]) y


Note : Started database using old spfile in dbs location which we used for upgrade. Modified the cluster_database parameter to true.

[oracle@OEL7N1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat May 8 07:17:03 2021
Version 19.8.0.0.0

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1577055360 bytes
Fixed Size                  9135232 bytes
Variable Size             654311424 bytes
Database Buffers          905969664 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.
SQL> show parameter cluster_database

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cluster_database                     boolean     TRUE
cluster_database_instances           integer     2
SQL>
SQL> create spfile='+DATA' from pfile;

File created.

SQL>
SQL>
SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.8.0.0.0
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl add database -d orcl -oraclehome /dboracle/app/oracle/product/19.0/dbhome_1 -dbtype RAC -spfile +DATA/ORCL/PARAMETERFILE/spfile.307.1071991167 -pwfile +DATA/ORCL/PASSWORD/pwdorcl.256.1070782021
[oracle@OEL7N1 ~]$ srvctl add instance -i orcl1 -n OEL7N1 -d orcl
[oracle@OEL7N1 ~]$ srvctl add instance -i orcl2 -n OEL7N2 -d orcl
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl status database -d orcl
Instance orcl1 is not running on node oel7n1
Instance orcl2 is not running on node oel7n2
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl start database -d orcl
[oracle@OEL7N1 ~]$
[oracle@OEL7N1 ~]$ srvctl status database -d orcl
Instance orcl1 is running on node oel7n1
Instance orcl2 is running on node oel7n2


We need to enable the disabled scheduler jobs.

 INST_ID INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME                      VERSION_FULL      STARTUP_T STATUS       LOGINS
-------- --------------- ---------------- ------------------------------ ----------------- --------- ------------ ---------
       2               2 orcl2            OEL7N2.localdomain             19.8.0.0.0        08-MAY-21 OPEN         ALLOWED
       1               1 orcl1            OEL7N1.localdomain             19.8.0.0.0        08-MAY-21 OPEN         ALLOWED

Last step : Add a service for pdb.

[oracle@OEL7N2 ~]$ srvctl add service -d orcl -s pdborcl_srv -preferred orcl1,orcl2 -tafpolicy BASIC -clbgoal SHORT -pdb PDBORCL

[oracle@OEL7N2 ~]$ srvctl start service -d orcl -s pdborcl_srv

[oracle@OEL7N2 ~]$ srvctl status service -d orcl
Service pdborcl_srv is running on instance(s) orcl1,orcl2

[oracle@OEL7N2 ~]$ srvctl status database -d orcl
Instance orcl1 is running on node oel7n1
Instance orcl2 is running on node oel7n2

[oracle@OEL7N2 ~]$ srvctl status database -d orcl -v
Instance orcl1 is running on node oel7n1 with online services pdborcl_srv. Instance status: Open.
Instance orcl2 is running on node oel7n2 with online services pdborcl_srv. Instance status: Open.

Upgrade is now complete.


Long post. Hope it is of some help in your DBA Journey.


540 views0 comments

Recent Posts

See All

ORA-00845: MEMORY_TARGET not supported on this system

srvctl start asm fails with the following error. [oracle@sbstandby ~]$ srvctl start asm PRCR-1079 : Failed to start resource ora.asm CRS-2674: Start of 'ora.LISTENER.lsnr' on 'sbstandby' failed CRS-50

Post: Blog2_Post
bottom of page