Patch : patch is a bug fix.
Patch set : Collection of bug fixes is called is a patch set.
eg : 10.2.0.2, 11.2.0.2, 11.2.0.3
Different types of patch sets released by oracle are
1.one off patch set / interim patch(small bug fix)
2.patch sets(collection of bug fixes)
3.CPU patches(critical patch updates)
4.PSU's(patch set updates)
5.CRS# bundle patches(to fix the bugs in cluster)
All the above patches can be installed using opatch utility except patch sets.
Patch sets are installed by invoking runInstaller.
The default location of opatch utility is $ORACLE_HOME/opatch.
To know the version of opatch
root> opatch -version
vi .bash_profile
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/opatch:$PATH/bin
For every quarter(january,april,july,october) oracle releases CPUpatches to overcome security threats(hacking).
PSU contains CPU and small other bug fixes.
After upgrading PSU we need to execute $ORACLE_HOME/rdbms/catbundle.sql and after installing CPU we need to execute $ORACLE_HOME/rdbms/catupgrade.sql
Oracle10gR2
Base version : 10.2.0.1
Patch sets : 10.2.0.2, 10.2.0.3, 10.2.0.4, 10.2.0.5
Oracle11gR2
Base version : 11.2.0.1
Patch sets : 11.2.0.2, 11.2.0.3 --> also considered as base versions.
After installing the patchsets and after upgrading the database some PL/SQL packages, functions and procedures may become invalid. We need to recompile them by executing the following script
SQL>@$ORACLE_HOME/rdbms/admin/utlrp.sql