The latest oracle version is oracle 19C . In the below article we will explain the steps for upgrading grid infrastructure to 19c from oracle 12c  . The upgrade will be done in rolling mode.

Current configuration - >

No of nodes - 2 node
current version - 12.1.0.2
os platform - Solaris
grid owner - oracle

Check software version :

oracle@node1~$ crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [12.1.0.2.0]

oracle@node2~$ crsctl query crs softwareversion
Oracle Clusterware version on node node1 is [12.1.0.2.0]

PRECHECKS:

  • Apply required patches to your existing 12c grid.
  • Required patches depends upon the os platform and current patch level. Please refer below metalink to find which patches you will need for your setup.

    Patches to apply before upgrading Oracle GI and DB to 19c or downgrading to previous release (Doc ID 2539751.1)

    For our solaris setup, we have already applied JAN2019 BUNDLE PATCH (GI) . So no need to apply any patches.

    2. Download the software and unzip on your first node

    Create new grid home for oracle 19c .

    mkdir -p /dumparea/oracle/app/grid12c
    

    unzip the software at this home location .(grid_home is where we unzip the software).

    cd /dumparea/oracle/app/grid12c
    unzip -q /dumparea/SOLARIS.SPARC64_193000_grid_home.zip
    

    3. Run the orachk tool as grid owner ( oracle)

    orachk tool will generate a report for recommendation, that need to be taken care before upgrading.

    export GRID_HOME=/dumparea/oracle/app/grid19c
    cd /dumparea/oracle/app/grid19c/suptools/orachk/
    
    ./orachk -u -o pre
    
    

    Analyze the html report for any recommendations.

    4. Run cluvfy as grid owner ( oracle )

    cd dumparea/oracle/app/grid19c

    syntax - >
    ./runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome -dest_crshome -dest_version 19.0.0.0.0 -fixup -verbose

    i.e
    ./runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome /drcrs/app/oracle/product/grid12c -dest_crshome dumparea/oracle/app/grid19c -dest_version 19.0.0.0.0 -fixup -verbose

    ./runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome /drcrs/app/oracle/product/grid12c -dest_crshome dumparea/oracle/app/grid19c -dest_version 19.0.0.0.0  -fixup -verbose
    
    
    
    Verifying Physical Memory ...
      Node Name     Available                 Required                  Status
      ------------  ------------------------  ------------------------  ----------
      snode1       254GB (2.66338304E8KB)    8GB (8388608.0KB)         passed
      snode2       254GB (2.66338304E8KB)    8GB (8388608.0KB)         passed
    Verifying Physical Memory ...PASSED
    Verifying Available Physical Memory ...
      Node Name     Available                 Required                  Status
      ------------  ------------------------  ------------------------  ----------
      snode1       8.5611GB (8977000.0KB)    50MB (51200.0KB)          passed
      snode2       7.3874GB (7746264.0KB)    50MB (51200.0KB)          passed
    Verifying Available Physical Memory ...PASSED
    Verifying Swap Size ...
      Node Name     Available                 Required                  Status
      ------------  ------------------------  ------------------------  ----------
      snode1       256GB (2.68435448E8KB)    16GB (1.6777216E7KB)      passed
      snode2       256GB (2.68435448E8KB)    16GB (1.6777216E7KB)      passed
    
    
    
    .
    .
    .
    .
    
    Verifying network interfaces CLASS/TYPE attribute ...PASSED
    Verifying loopback network interface address ...PASSED
    Verifying Privileged group consistency for upgrade ...PASSED
    Verifying CRS user Consistency for upgrade ...PASSED
    Verifying Clusterware Version Consistency ...
      Verifying cluster upgrade state ...PASSED
    Verifying Clusterware Version Consistency ...PASSED
    Verifying Check incorrectly sized ASM Disks ...PASSED
    Verifying Network configuration consistency checks ...PASSED
    Verifying File system mount options for path GI_HOME ...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 IP hostmodel ...PASSED
    Verifying File system mount options for path /var ...PASSED
    Verifying Multiuser services check ...PASSED
    Verifying ASM Filter Driver configuration ...PASSED
    
    Pre-check for cluster services setup was successful.
    
    CVU operation performed:      stage -pre crsinst
    Date:                         Aug 27, 2019 9:30:53 AM
    CVU home:                     /dumparea/oracle/app/grid19c/
    User:                         oracle
    
    

    In case any error reported, fix them before proceeding further.

    DRY RUN PHASE:( GUI Method)

    Dry run phase will  not do any changes to the existing grid setup. It will just check the system readiness.

     

    As per oracle note: Dry run does below activities:

    • Validates storage and network configuration for the new release
    • Checks if the system meets the software and hardware requirements for the new release
    • Checks for the patch requirements and apply necessary patches before starting the upgrade
    • Writes system configuration issues or errors in the gridSetupActions<timestamp>.log log file

    NOTE - > Few users commented that , dry run phase restarted their grid . So you are doing this on production, please consider this risk.

    - Run as grid owner ( oracle)

    unset ORACLE_BASE
    unset ORACLE_HOME
    unset ORACLE_SID

    cd /dumparea/oracle/app/grid19c
    ./gridSetup.sh -dryRunForUpgrade

     

     

     

     


     

     

     

     

    This warning can be ignored.

     

     

     

     

    Run root script only on the local node.

    NOTE - Dont run this on remote node. Run only on local node 

    root@node1:~# /dumparea/oracle/app/grid19c/rootupgrade.sh
    Performing root user operation.
    
    The following environment variables are set as:
        ORACLE_OWNER= oracle
        ORACLE_HOME=  /dumparea/oracle/app/grid19c
    
    Enter the full pathname of the local bin directory: [/usr/local/bin]:
    The contents of "dbhome" have not changed. No need to overwrite.
    The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]:
    The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]:
    
    Entries will be added to the /var/opt/oracle/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.
    Relinking oracle with rac_on option
    Performing Dry run of the Grid Infrastructure upgrade.
    Using configuration parameter file: /dumparea/oracle/app/grid19c/crs/install/crsconfig_params
    The log of current session can be found at:
      /dumparea/app/grid/crsdata/node1/crsconfig/rootcrs__2019-08-27_10-37-30AM.log
    2019/08/27 10:38:07 CLSRSC-464: Starting retrieval of the cluster configuration data
    2019/08/27 10:38:20 CLSRSC-729: Checking whether CRS entities are ready for upgrade, cluster upgrade will not be attempted now. This operation may take a few minutes.
    2019/08/27 10:42:04 CLSRSC-693: CRS entities validation completed successfully.
    

     

     

    The dry run upgrade is successful. Lets proceed with actual upgrade.

     

    ACTUAL UPGRADE:

    Now we will proceed with the actual upgrade in a rolling mode .

    - Run as grid owner ( oracle )
    unset ORACLE_BASE
    unset ORACLE_HOME
    unset ORACLE_SID

    cd /dumparea/oracle/app/grid19c
    ./gridSetup.sh