Oracle Patching with Opatch

Yes i know, Mike Dietrich .. Autoupgrade Tool ..

  • In my opinion, Patch the OS first then..
  • We decided to Download the COMBO Patch Database+OJVM from Oracle
  • This patches comes in an interval 4 times a year - so we took the latest-1 patch version normally
  • Before we are patching, we take a vm snapshot or an rman Backup!
  • If it is an DG, we start with Standby first (read the Oracle Docs (Standby-first Y/N))
  • After the Opatch you have to datapatch the database

Here we go with Opatch

list inventory details of patch.

$ORACLE_HOME/OPatch/opatch lsinventory

list patchsets applied :

$ORACLE_HOME/OPatch/opatch lspatches

Find opatch version:

$ORACLE_HOME/OPatch/opatch version

Find details of a particular patch(before applying):

$ORACLE_HOME/OPatch/opatch query -all {PATCH_PATH}
$ORACLE_HOME/OPatch/opatch query -all /software/PATCH/30011234

Apply a patch to RDBMS HOME:

You may need to shutdown the database and listener services!

cd /SOFTWARE/PATCH/30011234
-- Go to the patch path:
$ORACLE_HOME/OPatch/opatch apply

Rollback an patch from RDBMS HOME:

$ORACLE_HOME/OPatch/opatch rollback -id [patch_id]
$ORACLE_HOME/OPatch/opatch rollback -id 30011234

Apply one off patch in grid_home:

root # $GI_HOME/crs/install/rootcrs.sh -prepatch. 
cd /SOFTWARE/PATCH/30011234-- Go to the patch path:
$GRID_HOME/OPatch/opatch apply
$GI_HOME/crs/install/rootcrs.sh -postpatch

Check conflict against ORACLE_HOME

- go to patch folder.
cd 223123213
[223123213]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Check whether active executables are running:
- go to patch folder.
cd 223123213
[223123213]$ $ORACLE_HOME/OPatch/opatch prereq CheckActiveFilesAndExecutables -ph ./

Opatch command using different inventory location:

$ORACLE_HOME/OPatch/opatch lsinventory -invPtrLoc /etc/orainv/orainventory