Grid Infrastructure Out of Place ( OOP ) Patching Through gridSetup.sh #JoelKallmanDay

Step 1 - Patch Me If You Can. (Grid OOP Patching)

I’ve moved my blog from https://insanedba.blogspot.com to https://dincosman.com Please update your bookmarks and follow/subscribe at the new address for all the latest updates and content. More up-to-date content of this post may be available there.

I will patch all my database servers grid infrastructure from 19.16 to 19.20. As there are more than 20 servers to patch, we will use fleet patching. First i will patch a 2 node cluster grid infrastructure by using out of place ( OOP ) patching  methodology through gridSetup.sh in silent mode. Doc ID 2853839.1  and Patching Oracle Grid Infrastructure 19c using out-of-place SwitchGridHome video by Daniel Overby Hansen  can be used a reference. 
Later i will use patched grid homes to create a gold image for fleet patching of all grid homes.

Setup List:
 * Grid 19.3 Base Release (LINUX.X64_193000_grid_home.zip)
 * Grid 19.20 RU (p35319490_190000_Linux-x86-64.zip)
 * Grid 19.20 August MRP (p35656840_1920000DBRU_Linux-x86-64.zip)
 * Grid 555.1 Recommended One-off (p35372179_1920000DBRU_Linux-x86-64.zip)
 * Opatch Latest Version (p6880880_122010_Linux-x86-64.zip)

Grid Infrastructure Out of Place Patching

Preparation Phase:

[root@oravt01 app]# export NEWGRIDHOME=/u01/app/19.20/grid
[root@oravt01 app]# mkdir -p $NEWGRIDHOME
[root@oravt01 app]# chown -R oracle:oinstall /u01/app/19.20
[root@oravt01 app]# chmod -R 775 /u01/app/19.20
[root@oravt02 app]# export NEWGRIDHOME=/u01/app/19.20/grid
[root@oravt02 app]# mkdir -p $NEWGRIDHOME
[root@oravt02 app]# chown -R oracle:oinstall /u01/app/19.20
[root@oravt02 app]# chmod -R 775 /u01/app/19.20
[oracle@oravt01 app]# export NEWGRIDHOME=/u01/app/19.20/grid
[oracle@oravt01 app]$ cd $NEWGRIDHOME
[oracle@oravt01 grid]$ unzip -oq /u01/app/Setup/LINUX.X64_193000_grid_home.zip
[oracle@oravt01 grid]$ rm -rf OPatch
[oracle@oravt01 grid]$ unzip -oq /u01/app/Setup/p6880880_122010_Linux-x86-64.zip
[oracle@oravt01 Setup]$ cd /u01/app/Setup/
[oracle@oravt01 Setup]$ mkdir GIRU
[oracle@oravt01 Setup]$ mkdir GIRU_Oneoff
[oracle@oravt01 Setup]$ mkdir GIMRP
[oracle@oravt01 Setup]$ cd GIRU
[oracle@oravt01 GIRU]$ unzip p35319490_190000_Linux-x86-64.zip
[oracle@oravt01 GIRU]$ cd ../GIRU_Oneoff
[oracle@oravt01 GIRU_Oneoff]$ unzip p35372179_1920000DBRU_Linux-x86-64.zip
[oracle@oravt01 GIRU_Oneoff]$ cd GIMRP
[oracle@oravt01 GIMRP]$ unzip p35656840_1920000DBRU_Linux-x86-64.zip
Content of Response File:

oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=CRS_SWONLY
ORACLE_BASE=/u01/app/oracle
oracle.install.asm.OSDBA=oinstall
oracle.install.asm.OSASM=dba
oracle.install.crs.config.clusterNodes=oravt01,oravt02
ORACLE_HOME=/u01/app/19.20/grid
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.configureAsExtendedCluster=false
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
view raw grid_oop.rsp hosted with ❤ by GitHub
Deploying new software to cluster nodes with a single command. (Grid RU + Grid MRP + Grid One-off)

[oracle@oravt01 grid]$ export CV_ASSUME_DISTID=OL7

[oracle@oravt01 app]# export NEWGRIDHOME=/u01/app/19.20/grid

[oracle@oravt01 grid]$ $NEWGRIDHOME/gridSetup.sh -silent -ignorePrereqFailure -waitforcompletion
-applyRU /u01/app/Setup/GIRU/35319490
-applyOneOffs /u01/app/Setup/GIRU_Oneoff/35372179, /u01/app/Setup/GIMRP/35656840/35571653
-responsefile /u01/app/Setup/grid_oop.rsp

Do not run root.sh script now. It will be executed after switching to new home completed. Otherwise as the destination grid home has not been configured as a 'CRS' home, it may corrupt the environment.
Once the switch grid home completed, content of inventory.xml under oraInventory is replaced. New Grid Home is tagged with CRS="true" flag.

[oracle@oravt01 grid]$ $NEWGRIDHOME/gridSetup.sh -silent -switchGridHome oracle.install.option=CRS_SWONLY ORACLE_HOME=/u01/app/19.20/grid oracle.install.crs.config.clusterNodes=oravt01 oracle.install.crs.rootconfig.executeRootScript=false

[oracle@oravt02 grid]$ $NEWGRIDHOME/gridSetup.sh -silent -switchGridHome oracle.install.option=CRS_SWONLY ORACLE_HOME=/u01/app/19.20/grid oracle.install.crs.config.clusterNodes=oravt02 oracle.install.crs.rootconfig.executeRootScript=false

Now new grid infrasture software ready to go. We will just execute root.sh scripts node by node. Wait for finish before executing on another node. Crs will be restarted from new grid home.

[root@oravt01 ~]# /u01/app/19.20/grid/root.sh
[root@oravt02 ~]# /u01/app/19.20/grid/root.sh
Final steps:
    * Listener.ora will be copied by gridSetup.sh. No action required.
    * Update all your shell scripts, .bashrc etc files to refer new grid home.
    * Do not forget to copy your custom glogin.sql etc files under old grid home to new grid home.

Hope it helps.
 

Comments

Popular posts from this blog

Secure PostgreSQL : Patroni, Etcd, Pgbackrest Included

How to Upgrade PostgreSQL, PostGIS and Patroni in Air-Gapped Environments

Oracle Grid Release Update by using Ansible Playbooks