Release
标准产品发布。如OracleDatabase 10g Release 2的第一个发行版本为10.2.0.1,可以在OTN、edelivery等站点上公开下载
PatchSet Release
就是早期大家常说的PSR。这是在主版本号上发布的补丁集,修复了较多的Bug,可能会包含一些增强功能(Enhancement)。比如11.2.0.1是一个主版本,那么11.2.0.2、11.2.0.3就是2个不同的Patch set。这种补丁集经过了严格的集成测试,也是累积型的。所以推荐安装最新的Patch Set。
PatchSet Update
就是DBA&DMA们常论道的PSU。Oracle 选取在每个季度用户下载数量最多,并且得到验证具有较低风险的补丁放入到每个季度的PSU中,修复比较严重的一些问题,包含每个季度的CPU,是累积型的。虽然在描述PSU的时候会用到数据库版本第5位,比如Database PSU 11.2.0.3.5,但实际上打完PSU后并不会真正改变数据库的版本,从v$version中看到的版本还是4位的(11.2.0.3.0),第5位仍然是0。
注意:
(1)Windows上没有CPU和PSU,对于Windows和Exadata,Oracle使用BundlePatch代替PSU,Bundle Patch会包含PSU的内容
(2)从11.2.0.2版本开始,一个新的补丁策略被引入,11.2.0.1之后发布的Patch Set本身就是一个完整的安装包,不再需要基础的Release 版本安装。
CriticalPatch Update
这个指的就是CPU补丁。每季度发布一次,用来修复安全方面的一些补丁,是累积型的。目前(2012年10月)已经更名为Security Patch Update (SPU)
InterimPatch/One-OffPatch
是我们常说的小补丁,为了修复某(几)个Bug而发布的补丁。这种补丁推荐在测试库上测试无误后再安装在生产库上。
MergedPatch
合并的补丁。当几个小补丁之间有冲突,不能同时安装的时候,需要提供这种Merged Patch。补丁冲突主要是由于2个或者多个补丁修改同一个文件,但是修改的内容是不同的。
BundlePatch(BP)
补丁集,修复多个Bug。在Windows平台上的Oracle没有小补丁,只有这种BundlePatch。这种累积型的补丁集会周期性的发布(至少每季一次),也就是每个Bundle Patch会包含之前所有的Bundle Patch。比如Windows Bundle Patch 16,它会包含之前所有15个Bundle Patch,所以我们总是推荐安装最新的Bundle Patch。Oracle的集群软件和数据库软件的Window Bundle Patch是同一个,比如Windows Bundle Patch 16(补丁号16167942,既可以打在集群上,也可以打在数据库上) 。
DiagnosticPatch
诊断补丁。顾名思义,这类补丁不是用来解决问题的,而是用来寻找问题的原因的。这类补丁只在Oracle技术支持部门要求安装时,才需要安装。在得到需要的诊断信息后,应立即卸载这一补丁。
CompositePatch
从2012年4月份的DatabasePSU 11.2.0.3.2和11.2.0.2.0.7开始,推出一种新的概念叫Composite Patches。这是一种新型的补丁包,它不同于其他的累积型补丁包。如果是第一次安装Composite Patches,那么该Composite Patches所包括的全部补丁都会被安装,后续安装的Composite Patches,只会安装对比前一次Composite Patches有变化的部分和新增加的补丁。Composite Patche的改进包括减少补丁安装时间,减少回滚以前应用的overlay patches的需要。新的Composite Patches格式,使以前PSU应用的overlay patches和新安装的PSU并存成为可能。更多信息,请参考Document 1376691.1 ‘Composite Patches for Oracle Products’ 和Oracle DatabaseSupport NEWS April edition.
PSU就是一种Composite Patch
第一次安装的composite patch为PSU 11.2.0.3.5:
Installed Top-level Products (1):
Oracle Database 11g 11.2.0.3.0
There are 1 products installed in thisOracle Home.
Interim patches (1) :
Patch 14727310: applied on Fri Dec 0910:59:28 EST 2011
Patch Description: “DatabasePatch Set Update : 11.2.0.3.5 (14727310)” <==变化和新增的部分
Created on 14 Jan 2013, 07:56:00 hrsPST8PDT
Sub-patch 14275605; “Database Patch SetUpdate : 11.2.0.3.4 (14275605)”<==Sub-patch
Sub-patch 13923374; “Database Patch Set Update : 11.2.0.3.3(13923374)”<==Sub-patch
Sub-patch 13696216; “Database Patch SetUpdate : 11.2.0.3.2 (13696216)”<==Sub-patch
Sub-patch 13343438; “Database Patch SetUpdate : 11.2.0.3.1 (13343438)”<==Sub-patch
Bugs fixed:
13566938, 13593999, 10350832, 14138130 …
安装下一个composite patch PSU 11.2.0.3.6时,只需要安装有变化的部分和新增加的patches,不需要再安装之前已经安装的11.2.0.3.1 、11.2.0.3.2,11.2.0.3.4和11.2.0.3.5,之前已经安装的这部分就称为sub-patch:
Patch 16056266: applied on Sun Apr 2812:42:57 CST 2013
Patch Description: “DatabasePatch Set Update : 11.2.0.3.6 (16056266)” <==变化和新增的部分
Created on 12 Mar 2013, 02:14:47 hrsPST8PDT
Sub-patch 14727310; “Database Patch SetUpdate : 11.2.0.3.5 (14727310)”<==Sub-patch
Sub-patch 14275605; “Database Patch Set Update : 11.2.0.3.4(14275605)”<==Sub-patch
Sub-patch 13923374; “Database Patch Set Update : 11.2.0.3.3(13923374)”<==Sub-patch
Sub-patch 13696216; “Database Patch SetUpdate : 11.2.0.3.2 (13696216)”<==Sub-patch
Sub-patch 13343438; “Database Patch SetUpdate : 11.2.0.3.1 (13343438)”<==Sub-patch
Bugs fixed:
13616375, 14035825, 12861463, 12834027,15862021, 13632809, 13377816 …
一般来讲,这些 patch 的命名规则一般是按照推出的先后顺序,比如在 2015年10月 推出的对 11.2.0.4 的第8个 DB PSU就命名为:DB PSU 11.2.0.4.8。
2016年1月份推出了对 PSU、SPU、Bundle Patch 新的命名规则。新的命名规则为(以11.2.0.4为例):11.2.0.4.YYMMDD。 此处的 YYMMDD 为patch (PSU、SPU、Bundle)发布的具体日期,格式为两位年份+两位月份+两位日期。
比如对 11.2.0.4 推出的第 9 个 DB PSU (本来应该命名为:11.2.0.4.9),在新的命名规则下,这个patch被命名为:11.2.0.4.160119,这也表示这 11.2.0.4的 PSU 是在1 6年1月19日 推出的patch。
Oracle 最新补丁号码名称请参考文档:Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1)