如何安装Oracle one off临时小补丁及注意事项

本文详细介绍了如何安装Oracle的one-off补丁,包括其特点、实施过程及注意事项。强调了one-off补丁的特性,如体积小、针对性强,以及可能存在的冲突问题。在安装前,需要进行冲突检查,确保补丁与现有数据库版本和已安装的补丁兼容。文章还提到了11g的hot patch概念,尽管在线修补能力有限,但在某些情况下,one-off补丁是解决问题的有效手段。
摘要由CSDN通过智能技术生成

Oracle Database的补丁除去我们最常见的Patch set大补丁集(就是那种动辄1、2个G的补丁包)外,还包括Critical Patch Update(CPU)和Patch Set Update(PSU),one-off Patch(一次性补丁);在数据库使用过程中出现某些问题后(最常见的是出现ORA-00600、ORA-07445错误),通过DBA与MOS的协作将问题定位到某个大版本上的具体Bug,如果该Bug在该版本上现有one-off patch的话,我们可以通过one-off patch的实施来解决问题,one-off patch具有如下特点:

  1. one-off patch的patch包一般都很小,因为它是为了修正一个或多个bug所特制,它一般只包含必要的inventory xml信息,以及和bug相关的共享库文件(一般是.o或者.a文件)
  2. one-off patch绝大多数是随需随制,一般是Oracle内部人员发现Bug或者客户在生产过程中遇到Bug后,向Oracle development开发部门提出patch building的Request ,开发人员接到building或backport的要求后会为客户系统指定的数据库版本和操作系统平台特制一个补丁(如果还没有的话);举例来说可能一个bug在Linux平台的10.2.0.4版本中已有one-off patch,但客户在Solaris Sparc 平台上10.2.0.3上碰到同样的bug,那么这个时候就可以提交SR要求Oracle开发部门backport这个patch
  3. 绝大多数one-off patch只需要用Opatch工具apply即可,不需要升级/修正数据字典,这一点和Patch set/CPU/PSU是不同的
  4. one-off patch是针对某个特殊版本的,如10.2.0.4上的one-off patch只能针对10.2.0.4实施,而在10.2.0.4.8(10.2.0.4的PSU 8)上该one-off patch可能是一个conflicting Bug即有冲突的一次性bug补丁;针对这种情况Oracle一般会给出当前版本上的替代one-off patch,例如6996030″MERGE LABEL REQUEST ON TOP OF 10.2.0.4 FOR AUDIT TRAIL CLEAN-UP”是10.2.0.4上的一个one-off patch,但在10.2.0.4.4上6996030是一个conflicting bug存在冲突,这样我们就需要一个替代品、一个10.2.0.4.4上的Equivalent patch等价补丁,在我们的例子中这个patch是9650152 “MERGE REQUEST ON TOP OF 10.2.0.4.4 FOR BUGS 9589005 6805009 6991606″
  5. 实施one-off patch意味着你的数据库软件将与其他主流版本的数据库在行为方式上有所区别,另一方面你需要考虑到如果发现了新的Bug并考虑打上另一个one-off patch时可能存在Conflicting冲突。大多数情况下one-off patch可以迅速帮我们解决Bug,但反过来说实施任意一个one-off patch时我们可能冒着今后花费更多时间去维护数据库补丁的风险;就这一点来看,应用one-off patch有着它明显的缺点
  6. 在11g中提出了hot patch的概念,这里的patch就是指的one-off patch;就目前看来online-patching只是一个噱头,因为真正具备在线实施能力的patch少之又少,你很难从MOS上的patch专栏中找到一个可用的online-patch
  7. 一个我个人的观点:Oracle GCS会通过stack call、trace、dump等信息将问题定位到bug,最为常见的是ORA-00600、ORA-07445等内部错误,这些错误因为有着明确的error argument、stack call等信息可以让GCS精确地定位故障,而对于另一些问题例如process spin、异常等待事件等不产生明确argument、stack、dump的问题时,定位就要困难一些。我们经常可以看到一些bug note,在客户apply one-off patch并设置特定event后one-off patch并不起作用,导致这种情况的原因多种多样,一种可能是patch在开发过程中存在问题(补丁代码没有被正确触发),另一种则是bug没有被准确定位。

我们目前的问题在于虽然one-off patch存在这样那样的问题,但很多时候又不得不实施one-off patch(大多数原因是停机时间限制);以及在一个已经实施了诸多Patch set、PSU、CPU和one-off patch的环境中新增one-off patch,为了更好地完成这项工作,我们有必要在具体实施补丁前完成以下的预备工作:

1.在定位到具体Bug后我们可以获得一个Bug No#,使用该No#到My Oracle Support上的Patches & Updates专栏中搜索该Bug相关的patch信息,这里存在三种情况:

  • 最好的情况是指定的数据库版本和操作系统平台上存在相关的patch
  • 指定数据库版本上有patch,注意这里的指定数据库版本需要精确到具体的PSU,但没有指定操作系统平台上的,这个时候可以提交SR要求在指定平台上build一个
  • 指定数据库版本上没有patch,注意这里的指定数据库版本需要精确到具体的PSU,例如10.2.0.4上的patch是不能直接用在10.2.0.4.x上的;针对这种情况我们可以首先查询Metalink Note“Patch Set Updates – One-off Patch Conflict Resolution”,可以从这个Note中查到指定one-off patch是否被包含在某个psu中,或者在某个psu上有特定的等价补丁(Equivalent on top),一部分one-off patch在不同的psu之间还存在通用性,如10.2.0.4.4上的部分patch可以在10.2.0.4.5上实施,具体是否通用可以参考下文中冲突检查的方法来检验。如果都没有等价补丁也没有通用补丁那么需要提交SR让Oracle开发部门去merge一个http://www.oracledatabase12g.com/archives/pre-check-while-you-are-applying-one-off-patch.html

2.更复杂的情况是在现有版本上已经应用了某些特定的patch(psu、cpu、或者其他one-off patch),我们要保证需要新增的one-off patch之间不存在conflict关系,也不会和系统中已有的patch发生conflict,这时候我们可以使用opatch prereq命令来做冲突检查并得到相关建议,如:

[oracle@rh2 tmp]$ /s01/db_1/OPatch/opatch lsinventory
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.

Oracle Home       : /s01/db_1
Central Inventory : /s01/oraInventory
   from           : /etc/oraInst.loc
OPatch version    : 11.2.0.1.3
OUI version       : 10.2.0.4.0
OUI location      : /s01/db_1/oui
Log file location : /s01/db_1/cfgtoollogs/opatch/opatch2011-05-06_21-41-39PM.log

Patch history file: /s01/db_1/cfgtoollogs/opatch/opatch_history.txt

Lsinventory Output file location : /s01/db_1/cfgtoollogs/opatch/lsinv/lsinventory2011-05-06_21-41-39PM.txt

--------------------------------------------------------------------------------
Installed Top-level Products (2): 

Oracle Database 10g                                                  10.2.0.1.0
Oracle Database 10g Release 2 Patch Set 3                            10.2.0.4.0
There are 2 products installed in this Oracle Home.

Interim patches (2) :

Patch  9654991      : applied on Fri May 06 21:33:38 CST 2011
Unique Patch ID:  12816418
   Created on 30 Jun 2010, 18:30:40 hrs PST8PDT
   Bugs fixed:
     9714832, 9713537, 9678695, 9655017, 9
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值