The environment started with a GRID 12.1.0.1 installation, upgraded to 18.3.0.0, and performed out-of-place patching (OOP) to 18.6.0.0.
As a result, there are three GRID homes and, ideally, we should remove 12.1.0.1 to save space because it’s longer required.
This demonstration will be for the last node from the cluster; however, the action performed will be the same for all nodes.
Review existing patch for Grid and Database homes:
[[email protected] ~]$ ssh racnode-dc1-2 "/media/patch/lspatches.sh" + . /media/patch/gi.env ++ set +x The Oracle base has been set to /u01/app/oracle ORACLE_SID=+ASM2 ORACLE_BASE=/u01/app/oracle GRID_HOME=/u01/18.3.0.0/grid_2 ORACLE_HOME=/u01/18.3.0.0/grid_2 Oracle Instance alive for sid "+ASM2" + /u01/18.3.0.0/grid_2/OPatch/opatch version OPatch Version: 12.2.0.1.17 OPatch succeeded. + /u01/18.3.0.0/grid_2/OPatch/opatch lspatches 29302264;OCW RELEASE UPDATE 18.6.0.0.0 (29302264) 29301643;ACFS RELEASE UPDATE 18.6.0.0.0 (29301643) 29301631;Database Release Update : 18.6.0.0.190416 (29301631) 28547619;TOMCAT RELEASE UPDATE 18.0.0.0.0 (28547619) 28435192;DBWLM RELEASE UPDATE 18.0.0.0.0 (28435192) 27908644;UPDATE 18.3 DATABASE CLIENT JDK IN ORACLE HOME TO JDK8U171 27923415;OJVM RELEASE UPDATE: 18.3.0.0.180717 (27923415) OPatch succeeded. + . /media/patch/hawk.env ++ set +x The Oracle base remains unchanged with value /u01/app/oracle ORACLE_UNQNAME=hawk ORACLE_SID=hawk2 ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/12.1.0.1/db1 Oracle Instance alive for sid "hawk2" + /u01/app/oracle/12.1.0.1/db1/OPatch/opatch version OPatch Version: 12.2.0.1.17 OPatch succeeded. + /u01/app/oracle/12.1.0.1/db1/OPatch/opatch lspatches 28731800;Database Bundle Patch : 12.1.0.2.190115 (28731800) 28729213;OCW PATCH SET UPDATE 12.1.0.2.190115 (28729213) OPatch succeeded. + exit [[email protected] ~]$
Notice that the GRID home is /u01/18.3.0.0/grid_2 because this was the suggestion from OOP process.
Based on experience, it might be better to name GRID home with the correct version, i.e. /u01/18.6.0.0/grid
Verify cluster state is [NORMAL]:
[[email protected] ~]$ ssh racnode-dc1-2 "/media/patch/crs_Query.sh" + . /media/patch/gi.env ++ set +x The Oracle base has been set to /u01/app/oracle ORACLE_SID=+ASM2 ORACLE_BASE=/u01/app/oracle GRID_HOME=/u01/18.3.0.0/grid_2 ORACLE_HOME=/u01/18.3.0.0/grid_2 Oracle Instance alive for sid "+ASM2" + crsctl query crs releaseversion Oracle High Availability Services release version on the local node is [18.0.0.0.0] + crsctl query crs softwareversion Oracle Clusterware version on node [racnode-dc1-2] is [18.0.0.0.0] + crsctl query crs softwarepatch Oracle Clusterware patch level on node racnode-dc1-2 is [2056778364]. + crsctl query crs releasepatch Oracle Clusterware release patch level is [2056778364] and the complete list of patches [27908644 27923415 28090523 28090553 28090557 28256701 28435192 28547619 28822489 28864593 28864607 29301631 29301643 29302264 ] have been applied on the local node. The release patch string is [18.6.0.0.0]. + crsctl query crs activeversion -f Oracle Clusterware active version on the cluster is [18.0.0.0.0]. The cluster upgrade state is [NORMAL]. The cluster active patch level is [2056778364]. + exit [[email protected] ~]$
Check Oracle Inventory:
[[email protected] ~]$ cat /etc/oraInst.loc inventory_loc=/u01/app/oraInventory inst_group=oinstall [[email protected] ~]$ cat /u01/app/oraInventory/ContentsXML/inventory.xml <?xml version="1.0" standalone="yes" ?> <!-- Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved. --> <!-- Do not modify the contents of this file by hand. --> <INVENTORY> <VERSION_INFO> <SAVED_WITH>12.2.0.4.0</SAVED_WITH> <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER> </VERSION_INFO> <HOME_LIST> ### GRID home (/u01/app/12.1.0.1/grid) to be removed. ======================================================================================== <HOME NAME="OraGI12Home1" LOC="/u01/app/12.1.0.1/grid" TYPE="O" IDX="1"> <NODE_LIST> <NODE NAME="racnode-dc1-1"/> <NODE NAME="racnode-dc1-2"/> </NODE_LIST> </HOME> ======================================================================================== <HOME NAME="OraDB12Home1" LOC="/u01/app/oracle/12.1.0.1/db1" TYPE="O" IDX="2"> <NODE_LIST> <NODE NAME="racnode-dc1-1"/> <NODE NAME="racnode-dc1-2"/> </NODE_LIST> </HOME> <HOME NAME="OraGI18Home1" LOC="/u01/18.3.0.0/grid" TYPE="O" IDX="3"/> <HOME NAME="OraHome1" LOC="/u01/18.3.0.0/grid_2" TYPE="O" IDX="4" CRS="true"/> </HOME_LIST> <COMPOSITEHOME_LIST> </COMPOSITEHOME_LIST> </INVENTORY> [[email protected] ~]$
Remove GRID home (/u01/app/12.1.0.1/grid). Use -local flag to avoid any bug issues.
[[email protected] ~]$ export ORACLE_HOME=/u01/app/12.1.0.1/grid [[email protected] ~]$ $ORACLE_HOME/oui/bin/runInstaller -detachHome -silent -local ORACLE_HOME=$ORACLE_HOME Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 16040 MB Passed The inventory pointer is located at /etc/oraInst.loc 'DetachHome' was successful. [[email protected] ~]$
Verify GRID home was removed:
[[email protected] ~]$ cat /u01/app/oraInventory/ContentsXML/inventory.xml <?xml version="1.0" standalone="yes" ?> <!-- Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. --> <!-- Do not modify the contents of this file by hand. --> <INVENTORY> <VERSION_INFO> <SAVED_WITH>12.1.0.2.0</SAVED_WITH> <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER> </VERSION_INFO> <HOME_LIST> <HOME NAME="OraDB12Home1" LOC="/u01/app/oracle/12.1.0.1/db1" TYPE="O" IDX="2"> <NODE_LIST> <NODE NAME="racnode-dc1-1"/> <NODE NAME="racnode-dc1-2"/> </NODE_LIST> </HOME> <HOME NAME="OraGI18Home1" LOC="/u01/18.3.0.0/grid" TYPE="O" IDX="3"/> <HOME NAME="OraHome1" LOC="/u01/18.3.0.0/grid_2" TYPE="O" IDX="4" CRS="true"/> ### GRID home (/u01/app/12.1.0.1/grid) removed. ================================================================================ <HOME NAME="OraGI12Home1" LOC="/u01/app/12.1.0.1/grid" TYPE="O" IDX="1" REMOVED="T"/> ================================================================================ </HOME_LIST> <COMPOSITEHOME_LIST> </COMPOSITEHOME_LIST> </INVENTORY> [[email protected] ~]$
Remove 12.1.0.1 directory:
[[email protected] ~]$ sudo su - Last login: Thu May 2 23:38:22 CEST 2019 [[email protected] ~]# cd /u01/app/ [[email protected] app]# ll total 12 drwxr-xr-x 3 root oinstall 4096 Apr 17 23:36 12.1.0.1 drwxrwxr-x 12 oracle oinstall 4096 Apr 30 18:05 oracle drwxrwx--- 5 oracle oinstall 4096 May 2 23:54 oraInventory [[email protected] app]# rm -rf 12.1.0.1/ [[email protected] app]#
Check the cluster:
[[email protected] app]# logout [[email protected] ~]$ . /media/patch/gi.env The Oracle base has been set to /u01/app/oracle ORACLE_SID=+ASM2 ORACLE_BASE=/u01/app/oracle GRID_HOME=/u01/18.3.0.0/grid_2 ORACLE_HOME=/u01/18.3.0.0/grid_2 Oracle Instance alive for sid "+ASM2" [[email protected] ~]$ crsctl check cluster -all ************************************************************** racnode-dc1-1: CRS-4537: Cluster Ready Services is online CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online ************************************************************** racnode-dc1-2: CRS-4537: Cluster Ready Services is online CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online ************************************************************** [[email protected] ~]$
In conclusion, don’t forget to remove any obsolete installation when no longer required to save space.
Later, /u01/18.3.0.0/grid will be removed, too, if there are no issues with the most recent patch.
4 Comments. Leave new
Hello Michael!
Thank you very much for your article. I have a doubt. Why don’t you use deinstall tool from the grid home you are deinstalling?
Thank you!
Regards,
José Antonio
Thanks Jose for you comments.
At first, I thought I was just being the lazy DBA.
Please find Oracle Doc Last Update: Feb 8, 2019 to hopefully address your question:
How to Deinstall Oracle Clusterware Home Manually (Doc ID 1364419.1)
How to Deinstall Old Clusterware Home Once Upgrade to Newer Version is Complete (Doc ID 1346305.1)
To answer: Why don’t you use deinstall tool from the grid home you are deinstalling?
I have not not tried it but interesting concept. There are no GUI for guided access for most environments work with; hence, detach and remove directory seem simpler.
-Michael.
Hello Michael,
Thank you very much for your answer and the references. The tool I told you about (deinstall) is not GUI it is just a plain shell script.
May be you are right and it is simpler and quicker to do it the way you explain in the post. I’m going to try both because I have several grids to deinstall.
Thanks!
Regards,
José Antonio
Thanks Jose for clarification and reminder.
I have not used it since 2013 and have forgotten about it.
https://mdinh.wordpress.com/2013/08/06/12c-deinstall/
Going to try this with /u01/app/19.3.0.0/grid_2/deinstall after downgrade to 12.2.
-Michael.