Last couple of weeks I have been busy patching and upgrading Production , Preproduction en test environment and during those activities OPatch was my friend and tool for that. Looking back an after talking to colleagues I decided to create a post for this . In my patching activities I had to apply a recent PSU patch to both the Grid Infra structure and Rdbms , do an Upgrade of the software and add the latest PSU patch again. In your preparations for OPatch I had issues with regard to storage present on the mount-point of the Grid Infrastructure . So as part of activities you should take a look at your file-system size Since the PSU patches will need at least 5 GB free space in the mount.
- As was mentioned in the introduction make sure you have at least 5GB ( more is better in this case) in the mount-point where the Grid infra Structure is located . In my case I had /opt/crs/product/11202/crs as a mount with 15GB of space. In this mount the grid software had been installed and One Psu patch had been applied in the old days ( we are talking October 2012 PSU ). And while applying a required PSU (October 2013) ( required for the upgrade to Oracle 126.96.36.199) there was not enough space to install the software.
- Since my current platform is Linux ( this is all about patching Rac environments and Oracle Restart env.) I looked at Metalink and downloaded: p6880880_112000_Linux-x86-64.zip. With every PSU patch you install you should ask yourself is my opatch up to date enough , or should I download a fresh copy from Metalink. I tend to check and to download a fresh copy every time i am my T-shirt “I-m a patch Dba today and I Like it “.
- In my environment my software installs look pretty much like this :
- Grid Infra structure is installed in /opt/crs/product//crs
- Rdbms is installed in /opt/oracle/product/11202_ee_64/db
- oh and a bit confusing perhaps my ORACLE_BASE is the same as the home of the ORACLE user ( which is /opt/oracle)
• Make a subdirectory for each psu patch you apply if un unzip N psu patches in same directory opatch will apply them every time again.
• Is auto really auto , tend to do it with –oh which still works fine for me.
• Keep your Opatch tool up to date .
## Setting up your patching :
oracle@mysrvr:/opt/oracle/stage # dir
drwxr-xr-x 5 oracle dba 4096 Jun 23 13:29 .
drwxr-xr-x 32 oracle dba 4096 Jun 23 15:22 ..
drwxr-xr-x 2 oracle dba 4096 Jun 11 13:32 OPatchlogs
drwxr-xr-x 2 oracle dba 4096 Jun 23 13:28 psuApr2014
drwxr-xr-x 2 oracle dba 4096 Jun 23 13:29 psuOct2013
## inside psuOct2013
oracle@mysrvr:/opt/oracle/stage/psuOct2013 # ls -ltr
-rw-r–r– 1 oracle dba 21 Apr 4 2013 README.txt
drwxr-xr-x 5 oracle dba 4096 Apr 4 2013 16459322
-rw-r–r– 1 oracle dba 450 Oct 9 2013 bundle.xml
drwxrwxr-x 9 oracle dba 4096 Oct 10 2013 17082367
-rw-rw-r– 1 oracle dba 141496 Jan 20 05:18 README.html
-rw-rw-r– 1 oracle dba 136871 Jan 20 05:18 PatchSearch.xml
-rwxr-xr-x 1 oracle dba 294574955 Jun 4 07:28 p17272753_112020_Linux-x86-64.zip
## Inside psuApr2014
oracle@mysrvr:/opt/oracle/stage/psuApr2014 # ls -ltr
drwxr-xr-x 5 oracle dba 4096 Jan 9 16:27 17592127
drwxrwxr-x 12 oracle dba 4096 Feb 5 07:04 18031683
-rw-r–r– 1 oracle dba 450 Feb 10 10:16 bundle.xml
-rw-r–r– 1 oracle dba 0 Feb 10 10:17 README.txt
-rw-rw-r– 1 oracle dba 59977 Apr 15 12:18 README.html
-rw-rw-r– 1 oracle dba 125015 Apr 15 14:17 PatchSearch.xml
-rwxr-xr-x 1 oracle dba 600096863 May 16 15:33 p18139678_112030_Linux-x86-64.zip
## Applying PSU April 2014
|unzip /opt/oracle/stage/p6880880_112000_Linux-x86-64.zip in your GRID_HOME and ORACLE_HOME directory|
|/opt/oracle/product/11203_ee_64/db/OPatch/ocm/bin/ocm.rsp set up a response file (and make not of the absolute path for that response file because you will need it during opatch apply.|
|/opt/crs/product/11203/crs/OPatch/ocm/bin/ocm.rsp : that is my absolute path to the response file|
|unzip p18139678_112030_Linux-x86-64.zip ( this was PSU april 2014 )|
|AS ROOT:export PATH=/opt/crs/product/11203/crs/OPatch:$PATH
|which opatch ( check if root can run opatch now )|
|PER NODE in your Cluster as ROOT :
opatch auto /opt/oracle/stage/
And as last recommendation . Check the logfiles that are produced during the OPatch in detail cause i have seen a situation where the OPatch reported “succeeded” but a detailed look in the logs showed that one of the patches had not been applied due to lack of space !!!!
As always happy reading and have a great day,