Oracle.补丁.体系结构

来源:互联网 发布:mac上能玩哪些网络游戏 编辑:程序博客网 时间:2024/05/16 18:30

ORACLE数据库提供两种方式的补丁

一种是主动的Proactive Patches,另一种被动的Reactive Patches,过去的PSU,SPU/CPU,BP都是Proactive Patches。从12c(12.1.0.2)起数据库又提供了一个名为DBBP的补丁类型,并且改变了补丁策略。

 

 Critical Patch Update(CPU) 2012年10月更名为SPU(Security Patch Update),版本是12.1.0.1 开始

看名字就知道, 对于安全漏洞的修复补丁,但不仅仅是这样,里面还包含有响应必须的非安全漏洞的补丁.这些是累积发行的. 当前发行的补丁包含有之前发布的所有CPU补丁的内容. Oracle只对处于标准技术支持和延长支持期间的产品提供该类补丁更新.

一般对当前补丁发行版及前一版提供CPU补丁,但也有只限于当前补丁发行版的例外情形. (先安装PSR再安装CPU)

 

发布日期一般在一月,四月,七月,十月的最接近15的星期二.

发布地址:https://www.oracle.com/technetwork/topics/security/alerts-086861.html

(注: Oracle免费注册一个账户即可查看.   技术支持的签约用户可以从metalink下载)

 

对于每一个CPU,都附有相应的说明文档(Critical Patch Update Note),其中介绍安装过程和注意事项,在安装之前应认真阅读此文档。同样也存在文档“Oracle Critical Patch Update MM YYYY Known Issues for Oracle Database”,其中列出了说明文档中没有给出的新信息。

 

Patch Set Release(PSR)

针对发行版中BUG进行修复的补丁.每隔一定时期,会将所有补丁集成到软件中,经集成测试后,进行发布.

在一个PSR发布后,还没有加入到下一个PSR补丁之前的这段时间中的补丁,是以Interim Path(个别补丁)的形式提供给客户的.注意,个别补丁之间可能存在冲突.原因是没有进行集成测试.

 

那么问题就来了. CPU发行周期3个月一次,PSR的发行周期是按照发行版本来的,一般都需要一年的时间.哭泣的脸 一年!!! 如果这中间有非常重要的个别补丁,怎么办? 不打补丁( 预防故障发生有欠缺),安装补丁(还没有集成测试, 万一down了!生病)

 

由于这个问题的凸显, oracle提出了下面的解决方案:

 

Patch Set Update(PSU) 2009年开始至今

 

主要解决以下问题:

1. 减轻PSR周期长而带来的不能及时更新的影响;

2. 解决多个个别补丁冲突和相互影响的问题;

3. 减轻DBA安装补丁的负担:补丁安装次数,不定期检查补丁发布。

 

特点:

1.PSU是PSR的补充,在两次PSR之间发布多个PSU,加快更新速度. 每个PSU修改5位版本号的第5位.

(例如: 11204的PSU的11.2.0.4.8下个版本不再是11.2.0.4.9,而是11.2.0.4.160119)

 

2.每个PSU中包含25~100个重要补丁(这些都会进行集成测试),用于解决冲突问题,保证系统的稳定性.

(除了功能和性能修复的补丁外,也包含安全补丁)

 

3.PSU定期发布,计划一年4次.发布日期与CPU发布日期相同.由于PSU包括同期发布的CPU,只要安装PSU即可。(对部分平台,仍提供单独的CPU,供客户选择)

 

4.PSR也是累积发行.打最新的PSR将包含前面发行PSR的内容

 

5.Opatch安装和删除,命令使用apply和rollback. (可以视为一个特殊的个别补丁)

 

6.现有的个别补丁与PSU的关系分为三类:完全独立;是PSU的一部分;与PSU冲突。第一类的个别补丁与PSU相互没有影响,可以独立的安装或删除。对于第二类,在安装PSU之后,自然没有必要安装。若在PSU之前已安装,则在安装PSU时会被自动删除。对于第三类个别补丁,如在PSU之前已安装,必须在安装PSU时删除。客户可以向Oracle公司技术支持部门提出申请,由Oracle负责提供与PSU不冲突的,在PSU之上安装的相应的新的版本。

 

限制: 必须是在正常技术支持范围之内的版本(11.2、11.1和10.2),并且PSU只能在最新PSR之上安装。

Database Patch for Engineered Systems and Database In-Memory Bundle Patch (BP) (为了区别与windows Bundle Patch(BP)2016年4月之后 修改为

Database Proactive Bundle Patches(DBBP)    为啥不是DPBP?

数据库主动绑定补丁,它包括 所有的数据库 PSU补丁,以及程序及内存数据库的补丁.是多个PSU的超集,包含了GI PSU、DB PSU及EXPDATA和DBIM的相关修复,从dba_registry_sqlpatch视图中可以看到Database Bundle Patch (DBBP) 区别于原来的PSU,也就是从12.1.0.2以后Database Proactive Bundle Patch可以应用于所有数据库环境。另外DBBP仅用于LINUX和UNIX环境,与WINDOWS 的BP没有关系, Windows平台还继续使用Bundle Patch (Windows 32bit & 6bit).

可用于Exadata及非Exadata系统, RAC及非RAC配置均可.

发布周期: 跟SPU相同,季度发布.

“oracle dpbp”的图片搜索结果

 

 

注意: DBBP,PSU,SPU/CPU是不同的路,一旦选择走某一条路,就不能走另外的路了。也就是说,如果你之前选择打PSU,那么如果你要改成打BP,就必须回滚之前的PSU。

补丁之间的包含关系

“oracle dpbp”的图片搜索结果

 

 

oracle patch cycle

 

参考:

  • Oracle Database – Overview of Database Patch Delivery Methods (Doc ID 1962125.1)

  • 12.1.0.2 Database Proactive Bundle Patches / Bundle Patches for Engineered Systems and DB In-Memory – List of Fixes in each Bundle(Doc ID 1937782.1)

  • Quick Reference to Patch Numbers for Database/GI PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1)Oracle 补丁那些事儿(PS、PSU、CPU、SPU、BP、DBBP…)

  • Oracle 补丁那些事儿(PS、PSU、CPU、SPU、BP、DBBP…) http://www.tuicool.com/articles/ieMv63U