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:

  1. 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 .

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

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.

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

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 

 

 

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

 

 

 

 

 

 

 

Now run the rootupgrade.sh first on local node .Once it is successful on local node, then proceed on remote node.

 

Rootupgrade.sh script on node 1:( as root user)

Now proceed with node 2:

Rootupgrade.sh script on node 2:( as root user)

Once rootupgade.sh script executio completed on both nodes. Proceed to resume.

 

 

 

We have successful upgraded the grid to 19c version.

POST CHECK :

TROUBLESHOOTING:

1. If rootupgrade.sh script failed on local node:

 

In case rootupgrade.sh script failed on local node either due to any error or system got rebooted during that time, Then analyze the error and fix it . Once fixed, resume the ugprade with below step.

–run rootupgrade.sh script again on node 1:

cd /dumparea/crsapp/grid19c
/dumparea/crsapp/grid19c/rootupgrade.sh

–run rootupgrade.sh script again on node 2

cd /dumparea/crsapp/grid19c
/dumparea/crsapp/grid19c/rootupgrade.sh

Once rootupgrade.sh script is successful on both the node. We can start the gridsetup with response file again to complete the rest of the upgrade.

Response file can be found at $GRID_HOME_19C/install/response .

run gridsetup.sh script with the resonse file :

./gridSetup.sh -executeConfigTools -responseFile /dumparea/crsapp/grid19c/install/response/gridinstall_5_07_2019.rsp

This will skip the already executed tasks and complete the pending configuration.

2. If rootupgrade script failed on remote node :

 

At this stage , rootupgrade.sh is successful on local node, but failed on remote node. in that case, once issue is resolved on remote node, resume the upgrade by running rootupgrade.sh again on remote node.

— on node 2
cd /dumparea/crsapp/grid19c
/dumparea/crsapp/grid19c/rootupgrade.sh

If the gridsetup.sh GUI is not available, then we can start the gridsetup by using the response file.

./gridSetup.sh -executeConfigTools -responseFile /dumparea/crsapp/grid19c/install/response/gridinstall_5_07_2019.rsp

 

3. OUI-10166: The permission 0755 cannot be set for the file rootconfig.sh .

 

While starting the actual upgrade, If you are seeing the error. as

OUI-10166: The permissions 0755 cannot be set for the file $GRID_HOME/crs/config/rootconfig.sh. OUI-10175: The effective user ID does not match the owner of the file or the process is not the user user.

 

SOLUTION:

Check the owner of the file. $GRID_HOME/crs/config/rootconfig.sh . If it is owned by root , then change it to oracle and rerun the gridsetup.sh script.

chown oracle:oinstall rootconfig.sh

 

SEE ALSO: