If you are new to Oracle or lost in 1000s of pages of Oracle documentation, then these terms patch set , PSU or CPU is sure to create some kind of confusion.
Based on my experiences with 11gR2, looks like PSU is the way to go. For example we applied PSU3 to resolve mutex issues since there was no one-off fix w/o the PSU route. I also thought that PSUs were more flexible than I initially assumed because when we encountered another bug(10190759), the bug fix was available only for 11.2.0.2 (w/o PSU 3). Oracle still recommended applying this patch to 11.2.0.2.3(with PSU3) and it worked.
Here is brief summary of what is the difference between patch set , PSU and CPU. I will start with a image, might not be 100% accurate but will help a long way in understanding the differences.
Patch sets and PSU
PSU’s(Patch set updates) are patch sets but with some major differences with respect to regular patch sets.
PSUs are generally low risk and do not contain fixes to bugs that require configuration changes or impact database components like optimizer. To achieve this low risk behavior, Each PSU is limited from 25 to 100 new bug fixes. PSU’s are also well tested by Oracle compared to one off patches.
PSUs are referenced by their 5th place in the Oracle version numbers which makes it easier to track ( (e.g. 10.2.0.3.1) and will not change the version of oracle binaries (like sqlplus, exp/imp etc.) As of now (10.2, 11,2) , the best way to determine the PSU version installed is to use opatch utility using the command below
opatch lsinv -bugs_fixed | grep -i PSU
From the database , you can execute the following query(Assuming that catbundle.sql was executed when PSU was installed). The last 2 columns will provide information about the PSU.
select substr(action_time,1,30) action_time, substr(id,1,10) id, substr(action,1,10) action,substr(version,1,8) version,
substr(BUNDLE_SERIES,1,6) bundle, substr(comments,1,20) comments from registry$history;
In summary PSU’s contain fix for bugs that cause
- Instance crash
- Wrong results
- Data Corruption
PSU’s do not contain fix for bugs that may result in
- Dictionary changes
- Major Algorithm changes
- Architectural changes
- Optimizer plan changes
Regular patch sets on other hand include major bug fixes and most of the time requires re-certification. The importance of PSU is diminished once a regular patch set is released for a given version as they tend to be more security related fixes as CPU is part of PSU
PSU and CPU
PSUs contain CPU’s and are released every quarter (like CPU’s) ; In other words Critical Patch Update (CPU) is a subset of the Patch Set Update (PSU). CPU’s are built on the base Patch Set version (e.g. 10.2.0.3) whereas PSU are built on the base of the previous PSU (e.g. 10.2.0.3.1)
A PSU can always be applied over any CPU where as applying a CPU over a PSU will roll back the PSU (at least for now). Therefore it is easy to go from CPUs to PSUs and hard to go back to CPUs from PSUs.
Tagged: cpu, CPU v.s PSU, CPU vs PSU Oracle, crtical patch update, Oracle CPU, Oracle patch set, Oracle PSU, oracle psu vc cpu vs patchset, patch set, Patch set update, patch set v.s PSU, psu, psu vc cpu vs patchset
Article is interesting and very helpful. 🙂
thanks a lot !
You are Welcome
Thanks
Very very very knowledgable document.PERFECT..!!! Thanks a lot..
Excellent stuff. Keep it up.
This article provideds much insight on a go and explained in a simple and incisive manner,
Thanks for knowledge sharing and cleared the confusion.
Very Good one.. Thank you very much for knowledge sharing
great job
absolutely great information!
i have applied july 2012 psu and i missed oct 2012 psu . now can i apply directly jan 2013 Psu to 11.2.0.3 database
similarly if i still applying cpu patches to my environment .
i have applied july 2012 cpu and i missed oct 2012 cpu . now can i apply directly jan 2013 cpu to 11.2.0.3 database
Yes , Both are cumulative.
Thanks
Shan
Hi Brothere
could you please send me steps to apply DATABASE PATCH SET UPDATE 11.2.0.2.11 . My Oracle newly Oracle home is 11.2.0.2. Is there any prerequisites patches to apply before deploy this PSU.
I really appreciate if you reply.
Regards
Anas
See instructions below for Non-RAC instance. If you have dataguard, please follow the same procedure on the dataguard instance too.
NOTE: Please read note 1493990.1 if your current PSU is below 11.2.0.2.8 (Oct 2012).
1. unzip p16619893_11202_.zip
2. check for conflicts
cd 16619893
opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./
3. Shutdown database & listeners using the Oracle home.
4. Backup Oracle home and inventory if required.
5. Apply the patch
cd 16619893
opatch apply
6. Run the following on all databases using this Oracle home
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT
7. Check for opatch errors
cd $ORACLE_HOME/cfgtoollogs/catbundle
vi catbundle_PSU__APPLY_.log
vi catbundle_PSU__GENERATE_.log
If the files are not in above directory, then cd $ORACLE_BASE/cfgtoollogs/catbundle and search for the above files.
8.Upgrade rman catalog if any.
%rman catalog username/password@alias
RMAN> UPGRADE CATALOG;
Disclaimer
This blog represents my thoughts , experiences and opinions and not that of my employer(s) or Oracle Corp or any other vendor referenced in this blog.
All content provided on this blog is for informational purposes only. The owner of this blog makes no representations as to the accuracy or completeness of any information on this site or found by following any link on this site. The owner will not be liable for any errors or omissions in this information nor for the availability of this information. The owner will not be liable for any losses, injuries, or damages from the display or use of this information.
Usefull Link.. Expalained well
thanks for sharing your knowledge ,much appreciated
Good job….Well explained!!!!
Thanks Shan , very well explained.
I have a question , in my environment, when we created new DB (11.2 )using DBCA it seems to have automatically executed PSU , but later on we have been applying CPU only on these new DBs to keep same process as it is for all other DBs. Does it have any effect on DB ? PSU was applied on empty new DB, once we moved application data we have been applying CPU only.
Thanks for your time
Regards
Rakesh
good one , keep it up . Thanks
This site was… how do you say it? Relevant!! Finally I’ve found something that helped me.
Appreciate it!
[…] Oracle Patch sets , PSU and CPU | TwelveC – If you are new to Oracle or lost in 1000s of pages of Oracle documentation, then these terms patch set , PSU or CPU is sure to create some kind of confusion. […]