Step 1 – Patch Me If You Can. (Grid OOP Patching)
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)
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 |
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.
See you on Step 2 – Patch My Breath Away (Oracle Database Patching Out of Place Method)


Leave your comment