http://gaoshan.blog.51cto.com/742525/284057
一、概述
从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/<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下, 目录名就是个别补丁的补丁号, o