查看及管理Oracle patch

Oracle patch也即是Oracle补丁。Oracle补丁又包含好几个种类,小的补丁简直是难以数计,难免让人眼花缭乱。尽管如此,Oracle patch还是有序可循的。而且Oracle提供的opatch工具非常方便的用于安装oracle patch,以及查看当前系统已经安装的patch。本文列出了patch的几种类型,以及主要描述通过opatch工具查看当前数据库的patch应用的情况。对于如何apply patch可参考Oracle官方文档。

1、Oracle patch类型
One-off patches (e.g. a bug fix)
    One-off patches也称之为一次性补丁,通常针对特定的版本数据库或运行平台。此类补丁通常较小,使用的最为频繁
    One-off patch只需要用Opatch工具apply即可,不需要升级/修正数据字典
    如在数据库使用过程中出现某些异常后如较常见的ORA-00600、ORA-07445错误等可以通过一次性补丁来搞定

Critical Patch Update (CPU)
    简称CPU,一般来说CPU包含了Oracle产品安全漏洞的修复补丁集(set of security bug fix),通常一年发布四期
    该类patch的安装和安装one-off patch一样,同样使用”opatch apply”命令来完成
    安装完成后应针对既有的数据库(已经创建在使用的数据库),应在数据库级别运行数据字典升级脚本

Bundled patches (For Windows and Exadata only)
    用于解决在Windows平台无法利用替换共享库文件后relink的方式来更新Oracle binary,所以Oracle特别针对Windows发布区别于Unix上Normal/Molecular CPU的CPU Bundle patch
    通常情况下,Bundle Patch会别较大,Windows bundle patches通常每一个季度都会发布

PSR(Patch Set Release)/Patch Set Update(PSU)
    PSR就是大家常见的大补丁合集,通常1GB左右,也就是oracle版布号的第四位即为PSR号。也就是说oracle版布号的第四位会被修改
    每一个PSR是都整合了之前的一些bug,并且经过了严格的测试,通常更新PSR风险相对较小
    如10.2,10.2.0.1.0是基础发行版,至今已有五个PSR发布,最新10.2的PSR为10.2.0.5.0
    PSU就是在每个PSR发布之间的补丁,由于新旧PSR之间周期较长,而数据库在运行期间难以保证不会出现新的bug,因此有了PSU
    PSU是对于PSR的一个重要补充,每个PSU修改5位版本号的第5位。如,11.1版本升级为11.1.0.7.1;10.2版本为10.2.0.4.2
    PSU与CPU一样,定期发布,计划一年发布四次,发布日期与CPU发布日期相同。由于PSU包括同期发布的CPU,只要安装PSU即可
    PSU同样使用Opatch工具安装/删除,命令仍是apply和rollback。一个PSU可视作一个个别补丁,安装和删除操作同样简便
 
2、opatch工具

Oracle 为我们提供了用于patch安装、回退、管理与追踪的工具opatch,该工具为命令行工具,简单易用,可以根据opatch的帮助命令来获取帮助信息
#获得opatch的帮助信息
[oracle@linux1 OPatch]$ ./opatch -help
Invoking OPatch 11.1.0.6.6  #opatch的版本

Oracle Interim Patch Installer version 11.1.0.6.6
Copyright (c) 2009, Oracle Corporation.  All rights reserved.

Usage: opatch [ -help ] [ -r[eport] ] [ command ]

command := apply          #安装patch
                      lsinventory    #查看所有已安装的patch
                      napply        #用于Apply a set of patches at a time
                      nrollback      #用于Rollback a set of patches at a time
                      rollback      #Rollback an existing one-off patch indicated by the reference-id
                      query         
                      version
                      prereq        #用于检查安装patch之前的先决条件
                      util

<global_arguments> := -help      Displays the help message for the command.
                      -report    Print the actions without executing.
 example:                            #可以通过下面的方式来查看每一个具体命令的用法
  'opatch -help'
  'opatch apply -help'         
  'opatch lsinventory -help'   
  'opatch napply -help'       
  'opatch nrollback -help'
  'opatch rollback -help'
  'opatch prereq -help'
  'opatch util -help'
 
OPatch succeeded.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e93fe14fad84e4cb3602ca5af82593f6.html