Oracle的补丁体系
在使用Oracle的技术支持服务的时候,经常会遇到补丁相关的术语。现在对这些术语做些解释说明:
Interim patch/One-off patch:是我们常说的小补丁,为了修复某(几)个Bug而发布的补丁。这种补丁推荐在测试库上测试无误后再安装在生产库上。
Merged patch: 合并的补丁。当几个小补丁之间有冲突,不能同时安装的时候,需要提供这种Merged Patch。补丁冲突主要是由于2个或者多个补丁修改同一个文件,但是修改的内容是不同的。
Bundle patch:补丁集,修复多个Bug。在Windows平台上的Oracle没有小补丁,只有这种Bundle Patch。 这种补丁集会周期性的发布(至少每季一次)。这种补丁集是累积型的(cumulative),也就是每个Bundle patch 会包含之前的所有的Bundle Patch。 比如Windows Bundle Patch 16,它会包含之前所有15个Bundle Patch,所以我们总是推荐安装最新的Bundle Patch。Oracle的集群软件和数据库软件的Window Bundle Patch是同一个,比如Windows Bundle Patch 16(补丁号16167942,既可以打在集群上,也可以打在数据库上) 。
要了解Windows Bundle Patch的补丁号,可以参考MOS文档:
Note 161549.1 Oracle Database, Networking and Grid Agent Patches for Microsoft Platforms
Critical Patch Update (CPU):每季度发布一次,用来修复安全方面的一些补丁,是累积型的。目前已经更名为Security Patch Update (SPU)。
点击下面的链接查看各个CPU所修复的具体问题:
http://www.oracle.com/technetwork/topics/security/alerts-086861.html
Patch Set Update (PSU):每季度发布一次,修复比较严重的一些问题,包含每季的CPU,是累积型的。虽然在描述PSU的时候会用到数据库版本第5位,比如Database PSU 11.2.0.3.5,但实际上打完PSU后并不会真正改变数据库的版本,从v$version中看到的版本还是4位的(11.2.0.3.0),第5位仍然是0。注意,Windows上没有CPU和PSU,Oracle的集群软件和数据库软件使用不同的PSU。
可以参考下面的MOS文档了解每个季度的CPU、PSU、Windows Bundle Patch的具体补丁号:
Note 1454618.1 Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets
Patch set: 是在大版本上发布的补丁集,修复了较多的Bug,可能会包含一些增强功能(Enhancement)。比如11.2是一个大版本,那么11.2.0.2就是一个Patch set。这种补丁集经过了严格的集成测试,也是累积型的。所以我们总是推荐安装最新的Patch Set。
Diagnostic patch:诊断补丁。有的时候诊断一个问题的时候,为了获得更多的诊断信息,Oracle的开发部门会提供一个Diagnostic Patch,这种补丁不是为了修复问题,而是诊断问题。
Composite Patch:从2012年4月份的Database PSU 11.2.0.3.2开始,推出一种新的概念叫Composite Patches。 这是一种新型的补丁包,它不同于其他的累积型补丁包。如果是第一次安装Composite Patches,那么该Composite Patches所包括的全部补丁都会被安装,后续安装的Composite Patches,只会安装对比前一次Composite Patches有变化的部分和新增加的补丁。
PSU 就是一种Composite Patch,以PSU为例来说明。
第一次安装的composite patch为PSU 11.2.0.3.2:
Interim patches (1) :
Patch 13545268: applied on Fri Dec 09 10:59:28 EST 2011
Patch Description: “Database Patch Set Update : 11.2.0.3.2 (13545268)”<==变化和新增的部分
Created on 2 July 2012, 07:52:00 hrs PST8PDT
Sub-patch 13343438; “Database Patch Set Update : 11.2.0.3.1 (13343438)”<==Sub-patch
Bugs fixed:
9275072, 9352237 …
安装下一个composite patch PSU 11.2.0.3.3时,只需要安装有变化的部分和新增加的patches,不需要再安装之前已经安装的11.2.0.3.1 和11.2.0.3.2,之前已经安装的这部分就称为sub-patch:
Patch 13795248 : applied on Fri Dec 10 10:00:28 EST 2011
Patch Description: “Database Patch Set Update : 11.2.0.3.3 (13795248)” <==变化和新增的部分
Created on 2 July 2012, 07:52:00 hrs PST8PDT
Sub-patch 13545268; “Database Patch Set Update : 11.2.0.3.2 (13545268)” <==Sub-patch
Sub-patch 13343438; “Database Patch Set Update : 11.2.0.3.1 (13343438)” <==Sub-patch
Bugs fixed:
9275072, 9352237 …
Composite Patches 的好处是减少补丁的安装量,减少与已经安装上补丁的冲突。
在MOS文档中有针对Composite Patches详细的说明:
Note 1376691.1 Composite Patches for Oracle Products [Video]
上面提到的所有补丁都会有一个补丁号,如果已经知道了补丁号,就可以直接使用下面的链接来下载这个补丁:
https://updates.oracle.com/download/补丁号.html
输入MOS的账号、密码就可以。
比如:11.2.0.3.0 PATCH SET 下载链接:
https://updates.oracle.com/download/10404530.html
Oracle推荐打的补丁,可以参考MOS文档:
Note 756671.1 Oracle Recommended Patches – Oracle Database
(推荐打最新版本的Patch set、PSU/CPU及 Windows Bundle Patch)
注:Note 2118136.2 psu补丁号快速查询Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (文档 ID 1454618.1)