Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching, Zero-Downtime Upgrade, GoldenGate

Oracle Exadata ,Oracle ODA, Oracle ZDLRA


当前位置: 首页 » 技术文章 » Oracle

Oracle数据库补丁的分类和用途

什么是patch?
可以理解为为解决现运行的代码或软件在功能上的缺陷而设计开发的一小段代码。包括修复安全漏洞、错误、提高可用性、性能等。

Oracle的产品线很广,几乎覆盖了所有企业级的应用,包括关系型数据库、非关系型数据库、Enterprise Manager、中间件(Fusion Middleware)、ERP(E-Business Suite,Peoplesoft、Sibel)、Exadata等。其中EBS的patch应该算是最多的,patch的分类也不同。下面以Oracle数据库为例来说明patch的分类和用途,Oracle的Patch大部分都是累积类型的(Cumulative)。


Interim patch
也称为One-off patch,是我们所说的小补丁,只是为了修复个别或特别的Bug发布的,需要用opatch去应用补丁。

CPU (Critical Patch Update)
每季度发布一次,是累积型的,为了修复在安全方面的问题而发布的补丁,后被下面的SPU代替。

SPU (Security Patch Update)
安全补丁,作为Oracle的关键补丁更新(CPU)程序的一部分发布的安全补丁的集合,每季度发布一次。在12c之后,SPU会被取消掉,包含在PSU和Bundle Patch中。详情可点击http://www.oracle.com/technetwork/topics/security/alerts-086861.html

PSR (Patch Set Release)
补丁集,是在大版本上发布的补丁集,修复了较多的Bug,也会包含一些增强功能,是累积型的。比如11.2.0.4就是一个Patch Set。这种补丁集要经过严格的测试。Oracle也总是推荐安装最新的Patch Set。在11.2.0.2之后,Oracle的PSR有了变化,这个版本之后的PSR,直接安装即可,不需要在原来的ORACLE_HOME上安装。PSR的安装一般是通过runInstaller安装。

以10.2.0.1的数据库为例,如果要升级到10.2.0.4,需要在10.2.0.1上安装Patch Set3,通过runInstaller方式安装在10.2.0.1的ORACLE_HOME中。
以11.2.0.2的数据库为例,如果要升级到11.2.0.4,则可以直接下载11.2.0.4的安装补丁包,重新指定ORACLE_HOME,无需覆盖11.2.0.2的ORACLCE_HOME。

改进之后的好处:
可以无需备份ORACLE_HOME,减少升级时间
假如升级失败,回退也方便

PSU (Patch Set Update)
是在补丁集(PSR)之上的更新,是累积型的,一般一季度一次(每年的1月、4月、7月、10月)。她包含了对一些严重问题的修复更新,也会包含SPU。可跨多个堆栈组件,比如Grid Infrastructure PSU包括对GI和DB问题的修复。在RAC + DG中,Database PSU,Grid Infrastructure PSU一般是先在standby数据库上应用,经测试如果没问题,才在主库上应用。

PSU命名的变化
之前的命名为Database PSU 11.2.0.4.2,打完PSU后数据库的版本依然是11.2.0.4,并不会真正改变数据库的版本
如果在16年10月10日发布了在11.2.0.4上的PSU,在新的命名规则下,这个patch被命名为:11.2.0.4.161010。这样也可以把之前patch的第五位区别开来。

Bundle patch
修复多个Bug,是PSU的超集,也会包含SPU。这种补丁集会按照提前预定好的时间,周期性的发布,一般一季度发布一次,比PSU更新的会频繁一些。Bundle patch也是累积型的,就是说当前最新的Bundle patch会包含之前的所有的Bundle Patch。

Merged patch
合并的补丁。是为了解决补丁冲突而提供的。当几个小补丁之间有冲突时,比如不同的补丁之间包含了同样的文件,不能同时安装,需要使用Merged Patch方式来解决。

Composite Patch
从2012年4月份的Database PSU 11.2.0.3.2开始,推出一种新的概念叫Composite Patches。这是一种新型的补丁包,它不同于其他的累积型补丁包。如果是第一次安装Composite Patches,那么该Composite Patches所包括的全部补丁都会被安装,后续安装的Composite Patches,只会安装对比前一次Composite Patches有变化的部分和新增加的补丁。
    A packaging format used for Cumulative patches
    Eliminates the need to roll back previously applied Composite patch releases
    Reduces the need to roll back previously applied overlay patches
    Improves patch apply performance

Overlay Patch
当一个one-off patch和PSU冲突时,这时的解决方案是先回滚one-off patch,会在PSU之上开发一个新的patch,这称为Overlay Patch,PSU是Overlay Patch的先决条件。

Superset Patch
可以理解为父集补丁。假如Patch A包含了对Bug A,Bug B问题的修改。Patch B包含了对Bug A,Bug B,Bug C,Bug D和其他一些问题的修复,这时,Patch B可以称为Patch A的Superset Patch。


Diagnostic patch

诊断补丁。为了获取的诊断信息和验证Bug。根据需要Oracle的开发部门会提供一个Diagnostic Patch,只是用于帮助诊断问题。


QFSDP (Quarterly Full Stack Download Patch)
为了方便下载Exadata软件更新,Oracle提供季度全集合补丁。它包含了当前软件补丁的全部集合,每季度发布一次,包含SPU,PSU。
QFSDP 发布包含下列组件组件,每个组件也可以单独下载
    Infrastructure
        Exadata Storage Server
        InfiniBand Switch
        Power Distribution Unit
    Database
        Oracle Database and Grid Infrastructure DBBP, PSU, or QDPE
        Oracle JavaVM PSU (as of Oct 2014)
        OPatch
        OPlan
    Systems Management
        EM Agent
        EM OMS
        EM Plug-ins


OJVM PSU
Oracle JavaVM 补丁集更新。在2014年10月CPU及以后的CPU中,出现了新的PSU--OJVM PSU,它针对11.2.0.3、11.2.0.4、12.1.0.1和12.1.0.2版本的数据库,解决OJVM安全漏洞


命名规则的变化

熟悉Oracle Database PSU、Bundle Patch的DBA一定知道,一般来讲,这些patch的命名规则一般是按照推出的先后顺序,比如在2015年10月推出的对11.2.0.4 的第8个DB PSU就命名为:DB PSU11.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


Term Version Number  Example
Major Release Designated by the first 2 fields of the
version (fields are separated by decimal points) 
11.2
Base Release First 4 fields are the version of a Major Release 11.2.0.1
Patch Set Release (PSR) Designated by the 4th field of the version 11.2.0.4
Patch Set Update (PSU) Designated by 5th field of a version. 11.2.0.4.160419
Bundle Patch (BP) Also designated by 5th field of a version but with
text to indicate which series of bundle
Exadata Database Bundle
Patch 11.2.0.4.160419
Security Patch Update (SPU) Designated by a month/year 11.2.0.4 Jan 2015 SPU


Reference

http://docs.oracle.com/database/122/TDPRC/managing-oracle-software-and-applying-patches.htm


关键词:oracle patch 

相关文章

Oracle宣布推出全球分布式自治数据库
Oracle 23c新特性---开发人员
Oracle 23c free FAQ
Oracle 23c free and OCI Base Service
Oracle 21c
基于PDB的Active Data Guard(Oracle 21.7+)
在Oracle数据库中使用REST
OGG from MySQL to Oracle
Oracle数据库容灾之两地三中心实践
低代码开发用Oracle Apex,看这篇就够了
Oracle Database 20c之SQL宏
Java beginner for Oracle DBA
Top