从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 < command > [< command_options >] [ -h[elp] ]
命令有:apply(安装个别补丁)、rollback(卸载个别补丁)、lsinventory(对inventory进行列表)
、query(显示某一个别补丁的详细信息)、version(显示opatch版本信息)。在opatch目录下,有用户使
用指南文件(Users_Guide.txt),其中有详细的命令格式和使用示例,读者可以参考。Opatch执行操作时,
除在屏幕输出结果外,还生成日志文件。日志文件的路径和文件名格式如下:
$ORACLE_HOME/.patch_storage/< patch_id >/< action >-< patch_id >_< mm-dd-yyyy_hh-mi-ss
>.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
一个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