Upgrade Oracle Grid from 12c to 19c

by Brijesh Tiwari, Oracle Applications, Oracle Applications Database Administrator, Rackspace Tecnology


This post covers a step-by-step approach for upgrading a two-node Oracle Grid Real Application Cluster (RAC) from version 12C ( to 19C (19.7.0) that runs on a Linux operating system (OS).

The latest available version for Oracle Grid RAC is 19c. Oracle highly recommends upgrading your Grid infrastructure to 19c for better stability and security. In 19c, Oracle introduced many new features such as dry-run upgrades. This post discusses this new feature and the steps to upgrade Grid.

Steps to upgrade Grid

  1. Review the pre-upgrade checklist.
  2. Download 19c Grid software.
  3. Run the Orachk readiness assessment. 
  4. Apply mandatory 19c patches. 
  5. Run the cluster verification utility. 
  6. Dry-run upgrade.
  7. Upgrade Grid.
  8. Verify Grid upgrade.

19c pic 1

1. Pre-upgrade checklist 

According to the [Oracle Document 2539751.1](), you must apply the 28553832 patch in the 12C Grid home directory as a prerequisite:

    [grid@norlathrac01 OPatch]$ ./opatch lsinventory |grep -i 28553832
    28553832, 20883009, 21678268

2. Download the Grid Software

You can download the 19c Grid software from the following links:

Link 1

Link 2

Create a directory on both the RAC (Real Application Cluster) nodes:

    mkdir -p /u01/app/grid/product/19.3.0/grid

Copy the 19c grid software to the first node of RAC and unzip it.:

    cd /u01/app/grid/product/19.3.0/grid
    unzip -q <19c Grid Software location >

3. Run Orachk readiness assessment

According to Oracle document 1457357.1, the user that owns Grid needs to run the `Orachk` tool. Make sure to download the latest version of Orachk from document 1457357.1, then run the following commands:

  cd /u01/app/grid/product/19.3.0/grid/suptools/orachk
    export GRID_HOME= /u01/app/grid/product/19.3.0/grid
    export RAT_ORACLE_HOME=/u01/app/grid/12.1.0
    export RAT_DB=
    cd /u01/app/grid/product/19.3.0/grid/suptools/orachk
    ./orachk -u -o pre -profile clusterware,asm

This process generates an HTML report as shown in the following image: 

19c pic 2

Make sure to review the report for all failed, critical, and warning checks and resolve them before you move to the next step.

4. Apply Mandatory 19c Patches

You need to apply the mandatory patch 30899722 in the 19c home directory, as recommended by this Oracle Document.

    [grid@norlathrac01 grid]$ pwd
    [grid@norlathrac01 grid]$ ./gridSetup.sh -silent -applyRU

Execute the following command on node [norlathrac01] as root:

    Successfully Setup Software.

Finally, it asks to run root.sh. Do not run the script yet because you need to run it at the end of the upgrade.

After applying the patch, run the following command and make sure the command shows as supported:

    [grid@norlathrac01 bin]$ pwd
    [grid@norlathrac01 bin]$ ./acfsdriverstate -orahome /u01/app/grid/product/19.3.0/grid supported
    ACFS-9200: Supported

5. Run the cluster verification utility

Log in as the Grid OS owner user and run the following commands:

    [grid@norlathrac01 ~]$ cd /u01/app/grid/product/19.3.0/grid/
    [grid@norlathrac01 grid]$ ./runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome /u01/app/grid/12.1.0 -dest_crshome /u01/app/grid/product/19.3.0/grid -dest_version -fixup -verbose

This operation should pass all the following checks:

  • Verifying node application existence ...PASSED
  • Verifying check incorrectly sized ASM disks ...PASSED
  • Verifying ASM disk group free space ...PASSED
  • Verifying network configuration consistency checks ...PASSED
  • Verifying file system mount options for path GI_HOME ...PASSED
  • Verifying /boot mount ...PASSED
  • Verifying OLR Integrity ...PASSED
  • Verifying Verify that the ASM instance was configured using an existing ASM parameter file. ...PASSED
  • Verifying User Equivalence ...PASSED
  • Verifying RPM Package Manager database ...INFORMATION (PRVG-11250)
  • Verifying Network interface bonding status of private interconnect network interfaces ...PASSED
  • Verifying /dev/shm mounted as temporary file system ...PASSED
  • Verifying file system mount options for path /var ...PASSED
  • Verifying DefaultTasksMax parameter ...PASSED
  • Verifying zeroconf check ...PASSED
  • Verifying ASM filter driver configuration ...PASSED
  • Verifying Systemd login manager IPC parameter ...PASSED
  • Verifying Kernel retpoline support ...PASSED

6. Dry-run upgrade 
As mentioned earlier, Oracle introduced this new feature in 19c Grid. You can execute a dry-run upgrade before the actual upgrade. Dry-run upgrades verify all the steps similar to a real upgrade without making any real changes. Run the following commands:

    unset ORACLE_BASE
    unset ORACLE_HOME
    unset ORACLE_SID
    cd /u01/app/grid/product/19.3.0/grid 
    gridsetup.sh -dryRunForUpgrade 

19c pic 3
19c pic 4


19c pic 4
19c pic 5
19c pic 6

Finally, the process prompts you to run rootupgrade.sh. Run this on only a local node.

7. Upgrade Grid

In the earlier step, our dry-run upgrade was a success. Now, you can go for the real upgrade.  

Before starting the real upgrade, run the following command to bring down the Grid services and ensure that the remaining services are running on the cluster servers. Make sure cluster upgrade status is normal: 

 [grid@norlathrac01 bin]$ ./crsctl query crs activeversion -f
    Oracle Clusterware active version on the cluster is []. The cluster upgrade
    state is [NORMAL]. The cluster active patch level is [2653232555].
    cd /u01/app/grid/product/19.3.0/grid
    unset ORACLE_BASE
     unset ORACLE_HOME
     unset ORACLE_SID 

19c pic 7
19c pic 8


19c pic 9


19c pic 10


19c pic 11
19c pic 12


19c pic 13


19c pic 14

 Run rootupgrade.sh first on the local node and then on the remote node.

19c pic 15
19c pic 16

 At this point, the process upgrades Grid to 19c, and all the cluster services are running. 

8. Verify Grid upgrade

After Grid upgrades, run the following commands to verify the upgraded version of Grid:

    [grid@norlathrac01 bin]$ crsctl query crs activeversion
    Oracle clusterware active version on the cluster is []
    [grid@norlathrac01 bin]$
    [grid@norlathrac01 bin]$ ./crsctl query crs softwareversion
    Oracle Clusterware version on node [norlathrac03] is []

Verify all the CRS services are running on both the cluster nodes:

  [grid@norlathrac01 bin]$ crsctl check crs
    CRS-4638: Oracle high availability services is online
    CRS-4537: Cluster ready services is online
    CRS-4529: Cluster synchronization services is online
    CRS-4533: Event manager is online


Oracle 19c Grid, the latest available version of Grid, provides more stability and security. It comes with new features such as dry-run upgrades, making the Grid upgrade a smooth and accurate process compared to the earlier versions.

Learn more about our database solutions