当前位置:首页 > oracle补丁详解
oracle里的补丁具体分为如下这样6种类型:
Oracle Interim patches: A patch that is applied in between patchset releases with the Opatch utility. Interim patches are sometimes also referred to as patchset exceptions.
Oracle Merge patches: A type of interim patch that merges multiple fixes to ensure that one fix doesn't overwrite the other. Merge patches are typically required when a conflict is detected between an existing patch and a new patch.
Oracle Bundle patches: A type of interim patch that contains fixes to many important bugs, though not as many as a patchset.
Oracle Critical Patch Update (CPU) patches: A type of interim patch that contains fixes to critical security bugs delivered on a quarterly basis.
Patch Set Updates(PSUs): PSUs are proactive cumulative patches containing recommended bug fixes that are released on a regular and predictable schedule. PSUs are on the same quarterly schedule as the Critical Patch Updates (CPU), specifically the Tuesday closest to the 15th of January, April, July, and October.
Oracle Patchsets: Software-release mechanisms for delivering tested and integrated product fixes on a regular basis
Linux-x86 安装PSU 10.2.0.4.5
PSU测试:决定给Linux x86系统打上最新的PSU
OS version: Linux 2.6.18-92.el5xen Oracle version: 10.2.0.4.0
metalinke搜索Patch Set Update ,搜到文章: 1、
Patch Set Updates for Oracle Products [ID 854428.1]
在里面的“7 Determining the Patch Set Update Version”找到database 10.2.0.4的最新一个PSU为10.2.0.4.5。 Patch PSU Version Patch 9654991 10.2.0.4.5 Patch 9352164 10.2.0.4.4 Patch 9119284 10.2.0.4.3 Patch 8833280 10.2.0.4.2 Patch 8576156 10.2.0.4.1
2、
根据链接,下载Patch 9654991,该patch既是PSU 10.2.0.4.5。查看README,发现这是一个 overlay PSU,需要安装base PSU 10.2.0.4.4。同样在Patch Set Updates for Oracle Products [ID 854428.1]找到链接,下载了Patch 9352164
3、查看Patch 9352164(即PSU 10.2.0.4.4),这是一个base CPU,那么可以确定只要打了PSU 10.2.0.4.4和PSU 10.2.0.4.5了。
4、从metalink查出来两篇known issues
Oracle Database Patch Set Update 10.2.0.4.4 Known Issues [ID 1061293.1] Oracle Database Patch Set Update 10.2.0.4.5 Known Issues [ID 1089052.1]
5、从10.2.0.4.4 Known Issues查到还需要打上两个patch 9572766 (针对Bug 8830147和6994194)。因为这两个Bug没达到PSU的要求(到底是何要求),所以没有加到10.2.0.4.4的PSU里,需要单独打上。
另外还建议打上2个Patch:Patch 7361418和Patch 7036284。
根据下载链接下载这3个Patch。
6、10.2.0.4.5 Known Issues里也建议打上Patch 9572766和7036284。 其中有一段话:
Overlay PSU 10.2.0.4.5 Patches Uploaded as 10.2.0.4 Release
On 13-Jul-2010 the Overlay PSU 10.2.0.4.5 Patches were uploaded as release 10.2.0.4.4. The same patches for all platforms have also been uploaded on 4-Aug-2010 as release 10.2.0.4. Both patches are identical and either one can be downloaded and installed.
7、查看Patch的README,检查有何需要注意的。
两个PSU的README开篇就叫人去查看Known Issues。打PSU查看Known Issues确实很重要,可以看看是否有其他相关的Patch也需要打上。
8、从10.2.0.4.5的README,我们得到接下来的补丁应该如何打 1)先应用PSU 10.2.0.4.4,跟着应用PSU 10.2.0.4.5
2)根据10.2.0.4.4的README的Post-Installation说明进行操作,跟着再应用10.2.0.4.5的Post-Installation
但是个人觉得第2)步可以进行整合,
9、开始安装PSU和one-off patch
1)要安装10.2.0.4.4 PSU,需要数据库版本为10.2.0.4.0。不同版本数据库的PSU版本也跟着不同。 2)OPatch 版本要10.2.0.4.8或更高版本 使用旧版本的Opatch会报错:
$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./9352164 Invoking OPatch 10.2.0.4.2
Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation. All rights reserved.
PREREQ session
Oracle Home : /u01/app/oracle/product/10.2.0/db_1 Central Inventory : /u01/app/oracle/oraInventory from : /etc/oraInst.loc OPatch version : 10.2.0.4.2 OUI version : 10.2.0.4.0
OUI location : /u01/app/oracle/product/10.2.0/db_1/oui Log file location :
/u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch2010-09-09_23-59-40PM.log
Invoking prereq \
The location \Prereq \PrereqSession failed: Invalid patch location.
OPatch failed with error code 73
下载高版本的OPatch,解压到$ORACLE_HOME下即可解决问题 3)
检查环境变量$PATH:
export PATH=$PATH:/usr/ccs/bin export PATH=$PATH:$ORACLE_HOME/OPatch
4)如果已经安装有one-off patch,检查是否有使用了有关“spare”的初始化参数(比如
_first_spare_parameter, _second_spare_parameter)。如果没有关于“spare”的参数被使用或者只有一个关于bug7291739的参数_first_spare_parameter,那么可以不进行额外操作;否则,需要查看文档Important Information about \进行相关操作。
我的环境没有找到有关“spare”的参数使用。
5)重要:补丁冲突检查:
unzip p9352164_10204_
opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./9352164
$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./9352164 Invoking OPatch 11.2.0.1.3
Oracle Interim Patch Installer version 11.2.0.1.3
Copyright (c) 2010, Oracle Corporation. All rights reserved.
PREREQ session
Oracle Home : /u01/app/oracle/product/10.2.0/db_1 Central Inventory : /u01/app/oracle/oraInventory from : /etc/oraInst.loc OPatch version : 11.2.0.1.3 OUI version : 10.2.0.4.0
OUI location : /u01/app/oracle/product/10.2.0/db_1/oui Log file location :
/u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch2010-09-10_01-48-47AM.log
Patch history file: /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt
Invoking prereq \
Prereq \
OPatch succeeded.
6)如果使用了physical standby,那么参考文档:How do you apply a Patchset,PSU or CPU in a Data Guard Physical Standby configuration [ID 278641.1]
7)关闭数据库实例和监听
8)开始安装PSU
unzip p9352164_10204_
完成后检查: opatch lsinventory
opatch lsinventory -bugs_fixed | grep MOLECULE
安装以上方法把所有PSU和one-off patch都应用上,先装PSU 10.2.0.4.4,跟着装PSU 10.2.0.4.5,最后再装one-off patch。
9)用root执行,修改二进制extjob的权限(用于Job Scheduling system)。 export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 sh psu_root.sh
不执行该脚本,以后执行job可能会报错:
ORA-27369: job of type EXECUTABLE failed with exit code: ...
共分享92篇相关文档