当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
oracle opatch工具的使用(二)
发布时间:2010/10/6 10:35:32 来源:www.xue.net 编辑:城市总裁吧
    opatch作用

  opatch是用于维护"个别"补丁的,有人称其为interim path或是one-off patch

  以解决TA ENQ AND US ENQ DEADLOCK DURING TRANSACTION RECOVERY IN RAC问题的interim patch 3777178为例,

  安装及rollback的命令如下:

  install:

  oracle>unzip p3777178_9206_HP64.zip

  oracle>cd 3777178

  oracle>opatch apply

  rollback:

  oracle>cd 3777178

  oracle>opatch rollback -id 3777178

  查看:

  如下命令可以看到已经安装了哪些interim patch

  [oracle@mysql2 ~]$ /u01/app/oracle/product/10.2.0/db_2/OPatch/opatch lsinventory

  不断的在opatch后面加-h可以看到这个命令更加详细的选项:

  看一下lsinventory后面有哪些选项:

  [oracle@mysql2 ~]$ /u01/app/oracle/product/10.2.0/db_2/OPatch/opatch lsinventory -h

  1. 环境介绍

  XXXX综合管理信息系统主机放在XXXX,数据库平台硬件架构如下:

  数据库主机:两台IBMp5 570(jcczxt1、jcczxt2)安装AIX5L ML 5306 通过IBM HACMP构成双机热备。

  数据库平台:Oracle Server - Enterprise Edition - Version: 9.2.0.8

  2.故障描述

  2008年12月10号上午9:00值班人员接到用户反应应用出错无法存盘。前台出现的错误信息如下:

  ORA-01115:IO error reading block from file 6 (block #2707)

  ORA-01110: data file 6 : ‘/oradata/smis1.dbf’

  ORA-27091: skgfqio :unable to quere I/O

  ORA-27072: skgfdisp : I/O error

  IBM AIX RISC System/6000 Error : 5: I/O error

  此时数据库管理员重新启动数据库,前台用户反应应用可能正常运行,问题解决。数据库管理员在检查主机日志时没有发现任何硬件故障问题,在检查数据库日志时也没有任何错误提示,用Oracle的实用程序DBV对数据库文件进行检查没有发现坏块。

  2008年12月11日下午18:30用户又报同样的错误,此时DBA重新启动数据库和应用,问题解决。2008-12-11 8:50用户又报同样的。DBA重新启动数据库和应用,问题解决。

  3.故障的定位

  第一步,通过errpt检查主机的日志确认主机没有硬件问题,磁盘没有损坏。第二步,通过检查数据库的日志文件(alertSID.log)也没有相关的错误提示,初步判定不是数据库的问题。第三步,通过Oracle的实用程序DBV对数据库文件进行检查没有发现坏块。此时可以确认不是硬件问题,是软件的问题。第四步,综合管理信息系统是2008年10月18号上线,一直都稳定运行,没有出现过类似的情况,可以排除是应用程序的问题。第五步,通过上metalink网站查询与ORA-01115相关的信息,发现有大量的资讯,其中的故障描述与我们的情况一致,“由于在AIX5L的操作系统上Oracle由于无法获取正确的data block头信息,从而导致DBWn进程写硬盘失败,Oracle数据库从8.1.7.4到10.2.0.2都有此问题,是由于Oracle的BUG导致,需要打一个Oracle的临时补丁”。此时问题可以定位为oracle在AIX5L平台上的BUG,需要加载一个Oracle的临时补丁patch 5496862。

  4.Oracle术语解释

  什么叫interim patch ?

  Interim patch是一次性的补丁针对特定的情况下触发的Bug,没有经过Oracle系统的认证,Oracle会根据Bug的严重性和需要在下一次的patch set中包含此Interim patch。Interim patch对环境和版本有特定的要求,即不同操作系统平台和数据库版本的会有不同的Interim patch。如Interim patch 5496862会。

  什么叫Opatch?

  Opatch是oracle支持的Oracle临时补丁的安装实用程序。是针对Oracle数据库第二版9.2.0后安装临时补丁。Opatch是一个基于Perl的程序。

  如何安装Opatch?

  从metalink上选择补丁程序,选择简单搜索,输入patch号6880880选择相应的操作系统平台,查询结果会显示所有可用版本的optach,下载版本号10.1就行。将下的压缩文件上传到数据库主机,将压缩文件复制到$ORACLE_HOME目录下,用unzip工具解压此压缩文件。具体命令如下:

  #cp /tmp/p6880880_101000_AIX64-5L.zip $ORACLE_HOME

  #chown oracle:dba $ORACLE_HOME/p6880880_101000_AIX64-5L.zip

  以oracle用户解压此文件

  $ cd $ORACLE_HOME

  $unzip p6880880_101000_AIX64-5L.zip

  5.解决方法

  1)从metalink上选择补丁程序,选择简单搜索,输入patch号5496862,选择平台为IBM AIX Based System(64bit),下载Oracle9.2.0.8对应的patch大小为24K。

  2)将patch 5496862上传到数据库主机(host2)

  3)在jcczxt2主机上加载此patch

  因综合管理信息系统采用双机热备方式,所以备机(host2)没有数据库应用。所以我们可以在不停下数据库的情况下加载patch 5496862。详细步骤如上:

  以oracle数据库用户执行下面的命令:

  $cp /tmp/p5496862_92080_AIX64-5L.zip /oracle/patch

  $cd /oracle/patch

  $unzip p5496862_92080_AIX64-5L.zip

  $cd 5496862

  $$ORACLE_HOME/Opatch/opatch install

  提示要求输入metalink的帐号和密码,可能随便输入。

  提示“ Please shut down Oracle instances running out of this ORACLE_HOME”输入’Y’

  此时oracle会开始安装patch,因为要重新链接lib,所以要花几分钟时间,在安装完毕后会出现“OPatch succeeded”提示。

  4)将数据库切换到jcczxt2

  5)在host1主机上采用相同的方法上加载patch 5496862

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved