一、概述

从9.2版开始, Oracle公司设计实现了个别补丁"装管理工具opatch. opatch使用一个称为inventory的系统数据结构(严格说是与oui共享inventory), 集中管理所有已安装的个别补丁; 个别补丁的安装和卸载都使用opatch命令完成, 冲突检测也由opatch在安装时自动完成; 提供列表命令可以很方便得到已安装个别补丁的信息.

10g(10.1和10.2)版本中, opatch作为一个标准工具, 在软件安装时自动安装. 安装在$ORACLE_HOME/OPatch下. 而对于9.2版, 需要从metalink下载opatch. 无论数据库是哪一个版本, 系统中是否已经安装opatch, 在使用之前, 应从metalink下载最新版本的opatch.很遗憾, 由于系统实现的问题, 10.2使用的opatch与之前版本(10.1和9.2)使用的opatch不兼容, 不能混用, 这一点必须注意.

opatch是使用perl编写的脚本程序(其中也使用JAVA API). 编程使用的perl版本是5.6版, 虽然在5.6之前的版本中也可运行, 但应尽可能安装5.6或以上的版本的perl. 对于DBA来说一个好消息是, 如果安装9.2版软件时保留了HTTP服务器, 则在$ORACLE_HOME/Apache下会自动安装perl. 10g会自动安装配置perl和opatch.

opatch命令格式为:
opatch [ -help ] [ -r[eport] ] [ command ]
命令有: apply(安装个别补丁)、rollback(卸载个别补丁)、lsinventory(对inventory进行列表)、query(显示某一个别补丁的详细信息)、version(显示opatch版本信息). 在opatch目录下, 有用户使用指南文件(Users_Guide.txt), 其中有详细的命令格式和使用示例, 读者可以参考. Opatch执行操作时, 除在屏幕输出结果外, 还生成日志文件. 日志文件的路径和文件名格式如下:
$ORACLE_HOME/.patch_storage//-_.log
其中"patch_id"是Oracle技术支持部门为个别补丁分配的编号.

二、个别补丁安装实例

沿用安装PSR实例中的环境. 在安装PSR10.1.0.5后, 检索metalink, 发现若干在其之上的个别补丁. 选择其中之一安装. 个别补丁Patch 4518443修复BUG4518443, 这一BUG的主要问题是TNS LISTENER在注册ONS(Oracle Notification Services)的同时如果创建子进程, 那么LISTENER会挂起(HANGUP).

安装时, 首先从metalink下载补丁的压缩文件p4518443_10105_LINUX.zip. 将此文件解压缩至某一目录中. 解压缩后, 这一补丁的所有文件都在子目录4518443下, 目录名就是个别补丁的补丁号, opatch依据目录名获得信息, 所以一定不要重命名子目录.

然后, 在终端窗口中, 执行cd命令移动到4518443子目录中, 执行以下命令:
$ $ORACLE_HOME/OPatch/opatch apply

对inventory列表, 确认安装操作:
$ $ORACLE_HOME/OPatch/opatch lsinventory

执行卸载命令时, 也必须使4518443子目录成为当前目录. 其中Rollback命令需要两个参数: -id给出个别补丁号; -ph 给出个别补丁解压缩后的路径.
$ $ORACLE_HOME/OPatch/opatch rollback -id 4518443 -ph /…/4518443

随后再对inventory列表, 则会看到这一个别补丁已经被移去.

三、使用opatch显示已安装的版本信息

不需要启动数据库, 执行加选项的对inventory的列表命令, 可以得到已安装的软件的各个组件的详细版本信息.
$ $ORACLE_HOME/OPatch/opatch lsinventory -detail

四、安全补丁CPU(Critical Patch Updates)

一个CPU内包含了对多个安全漏洞的修复, 并且也包括相应必需的非安全漏洞的补丁. CPU是累积型的, 只要安装最新发布的CPU即可, 其中包括之前发布的所有CPU的内容. 事实上, 在CPU之前的安全漏洞修改除去个别例外也被包括在CPU中. Oracle公司只对处于标准技术支持和延长支持期间的产品提供CPU更新, 对处于维持支持范围的产品不提供新的CPU.(对于9.2以前的版本, 只对处于ECS和EMS期间的版本提供CPU更新)

一般对当前补丁发行版及前一个版本提供CPU, 但也有只限于当前补丁发行版的例外情形. 也就是说, 一般需要先安装最新PSR后才可能安装CPU.由于是累积型的定期发布, 所以对于某一平台的某一版本, 如果两次CPU发布期间没有发现新的安全漏洞, 则新发布的CPU与前一版本完全相同.

在以下网址中可以找到CPU发布的信息, 但是很遗憾, 只有技术支持签约用户才可以从metalink下载补丁文件.
http://www.oracle.com/technology/deploy/security/alerts.htm

Oracle公司制定的CPU的发布日期大约在一月、四月、七月和十月的最接近15的星期二. 对于每一个CPU, 附有相应的说明文档(Critical Patch Update Note), 其中介绍安装过程和注意事项, 在安装之前应认真阅读此文档. 同样也存在文档"Oracle Critical Patch Update MM YYYY Known Issues for Oracle Database", 其中列出了说明文档中没有给出的新信息.

在安装时, 首先下载压缩文件p5225797_10105_LINUX.zip, 解压缩到与其它个别补丁相同的目录下. 检查其发行说明时, 发现要求opatch版本比现已安装版本要高, 下载安装指定版本opatch. 进入子目录5225797(这是此安全补丁的补丁号), 执行apply命令.
$ $ORACLE_HOME/OPatch/opatch apply

打开此次安装生成的日志文件, 其中没有错误信息出现. 执行inventory列表命令确认安装:
$ $ORACLE_HOME/opatch lsinventory

--End--
from :http://hi.baidu.com/edeed/blog/item/0f443af3b10aca52352accb0.html