阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 通用补丁安装操作手册

178次阅读
没有评论

共计 16422 个字符,预计需要花费 42 分钟才能阅读完成。

1. 概述

近几年,随着我们用户 Oracle 数据库的应用越来越深入,环境越来越复杂,一些 Oracle 常见的 BUG 也会偶尔的被触发。因此,我们对技术人员要求不能再像以前一样只要求会安装数据库,还应该要求其掌握在遇到数据库 BUG 的时候,能够熟练的找到并安装对应的修复补丁才行。

因此该文档用于指导技术人员,能够查看和检查数据库环境的补丁安装情况,并对提供的 Oracle 补丁文件进行安装操作。

2. Oracle 补丁体系

Oracle 数据库同其他企业软件一样,正式版的发布和运维都要经过一个漫长的周期,当正式版发布后,在其生命周期内会 Oracle 公司会在官网上定期发布更新补丁程序,根据发布周期和集合程度不同,它们分别是维护版本(Version)、补丁集(Patch Set)、关键补丁更新(Critical Patch Update)、补丁集更新(Patch SetUpdate)和小补丁(One-off patch)几类,下面简单的介绍下它们的区别。

Ø  Version/ 维护版本

针对前一个维护版本的所有补丁进行整理,增加新的功能或对软件有较大的改动,进行整体测试,得到一个软件版本 ” 包 ”,称为版本 Version。比如 11.2

Ø  Patch Set/ 补丁集

在两次产品版本之间发布的一组经过全面测试的累计整体修复程序(一般每年发布一两次),如 11.2.0.211.2.0.3。

Ø  Critical Patch Update(CPU)/ 关键补丁更新

指每季度提供一次的一组高优先级修复程序(往往针对安全性问题)。对于以前的安全性修复程序而言,这些 CPU 是累积的,只需要安装最近最后一个就可以,它就包含了之前的所有 CPU 补丁,但也可包含其他修复程序,目的是解决与非安全性补丁之间的补丁冲突问题(即降低合并请求的必要性)。目前已经更名为 Security Patch Update (SPU)。

Ø  Patch Set Update(PSU)/ 补丁集更新

从 10.2.0.4 起,在两个补丁集之间发布,每年发布 4 次;每个补丁集更新包含 50~100 个修复,经测试和集成后发布,如 11.2.0.3.1,11.2.0.3.2,PSU 包含 CPU,所以建议尽量安装 PSU,PSU 通常也是增量的,大部分 PSU 可以直接安装,但有些 PSU 则必须要求安装了上一 个版本的 PSU 之后才能继续安装,要仔细看各个 PSU 的 Readme 文档。

Ø  One-off patch(个别补丁)

为了修复某 (几) 个 Bug 而发布的补丁,个别补丁是针对 Oracle 公司发现的或客户报告的某一个 BUG 编写的补丁,多个个别补丁之间一同安装时可能会有冲突,即同一个目标模块分别进行了不同的修改。另外,即便在安装时没有发现冲突,由于没有进行严格的集成测试,运行过程中由于相互作用是否会发生意外也不能完全排除,个别布丁的命名一般是 P 后面加 bug 号,如 P6139856,就是修复 bug 号为 6139856 的个别补丁。

其中前面两类维护版本(Version)和补丁集(Patch Set)的安装配置属于我们传统意义上的大版本升级,操作起来相对比较复杂,后续会专门提供文档进行讲解,这里我们就不再单独介绍,而后三个关键补丁更新(Critical Patch Update)、补丁集更新(Patch SetUpdate)和个别补丁(One-off patch)的操作基本相同,本文将针对这 3 类补丁进行详细的讲述,使得技术人员通过本文的讲解,能够在实际工作中顺利的掌握并进行 ORACLE 补丁安装部署。

3.  补丁的获取

3.1.  PSU 补丁获取

要想获取和下载 CPU/PSU,必须要有 Oracle Support 账号才行,渠道如果没有帐号,可以向高级技术支持部帮助获取,通过帐号登录 metalink,查询文章 id 为 1454618.1 的文档,名称为Quick Reference to Patch Numbers for Database PSU, SPU(CPU), BundlePatches and Patchsets (Doc ID 1454618.1),这个文档链接了所有数据库版本目前已经发布的 CPU 和 PSU, 并且定期进行更新,如下为 10.2.0.5 版本的 PSU 和 CPU 的列表

可以看到,最新的 PSU 是 10.2.0.5.12,这里我们一般只需要下载安装这个 PSU 就可以,不过 10g 的 PSU 下载需要更高的帐号权限,目前公司账户已经不能下载,因此建议大家以后逐渐升级到 11g 数据库。

3.2.  个别补丁获取

而对于个别补丁,我们一般是通过官方问题查询问题的时候,了解到问题的 bug 号,然后通过,然后通过 bug 号查找对应的个别补丁,如下:

查询结果会显示出该补丁对应的数据库和平台,我们只要下载对应的补丁程序就可以了,如下

      下载的时候一定要注意操作系统平台和适用的数据库版本信息。

4. OPatch 工具

在获取了补丁程序后,我们就需要对补丁进行安装,从 9.2 版开始,Oracle 公司实现了个别补丁安装工具 OPatch。通过它集中管理所有已安装的个别补丁;个别补丁的安装和卸载都使用 OPatch 命令完成,冲突检测也由 OPatch 在安装时自动完成;提供列表命令可以很方便得到已安装个别补丁的信息,opatch 命令格式为:

opatch< command > [< command_options >] [-h[elp] ]

10g(10.1 和 10.2)版本中,OPatch 作为一个标准工具,在安装时自动安装(安装在 $ORACLE_HOME/OPatch 目录下),不过有时候根据补丁的要求,需要使用最新版本的 OPatch 工具,这就要从 metalink 下载最新版本的 OPatch 工具,这一点必须注意,后续我们会结合案例进行讲解。

5.  补丁安装

接下来我们就演示下如何在 RAC 环境中安装 PSU 补丁,为什么要使用 RAC 环境最为案例演示?因为 RAC 环境的补丁安装相对复杂,几乎涵盖了补丁安装的各种情况,如果掌握,单机环境安装相对更加简单,如果技术人员通过本文掌握了 RAC 环境的 PSU 补丁安装,再进行单机环境的补丁安装应该都不成问题。

5.1.  环境检查

在安装 PSU 补丁前我们先看下目前环境的版本和环境,确定安装环境是否符合补丁安装的要求,避免环境错误,可以通过下面的语句查询:

SQL>select * from v$version;(查看数据库版本)

BANNER

——————————————————————————-

OracleDatabase 11g Enterprise Edition Release 11.2.0.1.0 – Production

PL/SQLRelease 11.2.0.1.0 – Production

CORE    11.2.0.1.0      Production

TNSfor Linux: Version 11.2.0.1.0 – Production

NLSRTLVersion 11.2.0.1.0 – Production

SQL>

[root@rac1~]# uname –rm(查看操作系统版本)

2.6.18-164.el5i686

可以看到目前我们的演示环境是一个 11.2.0.1.0 的 RAC 环境,linux32 位操作系统,因此我们决定安装对应这个版本最新的 PSU 补丁。

5.2.  PSU 补丁下载

接下来就是通过登录 metalink 账户查询 (Doc ID 1454618.1) 文档,大部分情况下技术人员是没有 metalink 帐号,可以向高级技术支持咨询补丁情况,我们这里查询的结果如下

      可以看到 11.2.0.1.0 最新的 PSU 是 11.2.0.1.6,由于 PSU 是累计的,因此我们这里只需要下载最新的这个 PSU 补丁就可以了,点击进入下载界面,

      选择对应的操作系统平台,点击 download,下载补丁包,一般补丁包的命名如 p12419378_112010_Linux.zip,是一个压缩文件,我们把它上传到服务器上,解压成一个文件夹,阅读文件夹中的 README.html 文件,里面对该 PSU 补丁的安装方式和安装注意事项进行了详细的描述,因此建议养成阅读该文件的习惯,我们这里截取第三部分安装的内容如下,

      如果大家有点英文知识,可以清楚的在看到 3.1.1 和 3.1.2 中提到,如果要在 RAC 和 ASM 环境安装这个 10.2.0.1.6 的 PSU,应该保证先安装了 Patch 9655006 和 Patch 8898852 两个补丁,其中 9655006 是 GI 的 PSU 补丁,可以使 GI 升级到 11.2.1.2 版本,而 8898852 是一个个别补丁(One-off patch),我们得先进行这两个补丁的安装,才能进行 10.2.0.1.6PSU 的安装。

5.3.  前期准备

5.3.1.  前提补丁下载

先找到这 2 个补丁的安装文件,通过补丁号进行查询,分别下载 p9655006_112010_LINUX.zip 和 p8898852_112010_Linux.zip,从补丁的介绍可以看到,其中 p9655006 其实就是 11.2.0.1.2PSU,这个包有 140M 大小,而 p8898852 是一个‘个别补丁’,非常的小只有几十 K, 我们先来安装比较简单的个别补丁,由于这个补丁是数据库补丁,通过 oracle 用户解压,具体命令如下:

[oracle@rac1~]$ unzip p8898852_112010_Linux.zip

个别补丁的安装非常简单,一般情况下只要满足其安装条件,执行一条命令就完成,当然我们首先还是要看下这个补丁的说明文档,其条件就是要求补丁安装的时候实例必须关闭,我们通过命令关闭实例,然后进入补丁解压文件,执行简单的补丁应用命令 opatch apply 就可以完成补丁的安装(当然前提是你要设置 opatch 执行路径的环境变量 PATH),如下:

[oracle@rac1~]cd 8898852

[oracle@rac18898852]opatch apply

OracleInterim Patch Installer version 11.2.0.1.0

Copyright(c) 2013, Oracle Corporation.  All rightsreserved

OracleHome      :/u01/app/oracle/product/11.2.0/db_1

CentralInventory : /u01/app/oraInventory

  from          :/u01/app/oracle/product/11.2.0/db_1/oraInst.loc

OPatchversion    : 11.2.0.1.50

OUIversion      : 11.2.0.1.0

……

patch/home/oracle/8898852  apply successfulfor home /u01/app/oracle/product/11.2.0/db_1

非常简单,补丁就执行安装完成,通过命令检查下补丁是否安装成功,如下,

[oracle@rac1OPatch]$ ./opatch lsinventory

Patchhistory file:/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt

 

LsinventoryOutput file location :/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2013-10-25_17-14-10PM.txt

——————————————————————————–

InstalledTop-level Products (1):

OracleDatabase 11g                                                 11.2.0.1.0

Thereare 1 products installed in this Oracle Home.

Interimpatches (1) :

Patch  8898852     : applied on Fri Oct 25 17:08:23 CST 2013

UniquePatch ID:  12383575

  Created on 12 Apr 2010, 05:52:21 hrs PST8PDT

  Bugs fixed:

    8898852(可以看到补丁已经成功安装)

Racsystem comprising of multiple nodes

  Local node = rac1

  Remote node = rac2

OPatchsucceeded.

      可以看到这个补丁已经安装成功,接下来同样的方式在其他节点执行一边,这里就不在演示,总之个别补丁的安装非常简单,只要操作过一次就基本能够掌握,接下来我们就来安装比较复杂的 P9655006 补丁,首先把补丁程序上传到 grid 用户的 home 目录,然后创建一个存放目录 /home/grid/stage/patch, 进行解压操作,解压的时候采用 unzip 命令,如下:

[grid@rac1~]$ unzip p9655006_112010_LINUX.zip  -d /home/grid/stage/patch

  inflating: stage/patch/9655006/files/bin/gnsd 

  inflating: stage/patch/9655006/files/bin/gnsd.bin 

  inflating: stage/patch/9655006/files/bin/oclskd.bin 

  inflating: stage/patch/9655006/files/bin/ocrdump.bin 

  inflating: stage/patch/9655006/files/bin/acfsdriverstate

 ……(省略)

inflating:stage/patch/9654983/files/javavm/install/jvmursc.sql 

  inflating: stage/patch/9654983/patchmd.xml   

  creating: stage/patch/9654983/custom/

  creating: stage/patch/9654983/custom/scripts/

  inflating: stage/patch/9654983/custom/scripts/pre 

  inflating: stage/patch/9654983/custom/scripts/post 

  inflating: stage/patch/bundle.xml             

 extracting: stage/patch/README.txt             

  inflating: stage/patch/README.html

[grid@rac1~]$ cd stage/patch/

[grid@rac1patch]$ ls

9654983  9655006 bundle.xml  README.html  README.txt

5.3.2.  前提条件核实

可以看到通过解压得到 2 个文件夹(9654983 和 9655006)和一个 README.html 说明文档,首先我们还是应该认真阅读下该补丁的说明文档,这里我要提醒每个技术人员,记到每次在安装补丁前都应该对补丁的说明文档进行认真的阅读,防止安装过程出现意外,首先来看 2.2 补丁安装的先决条件,部分截图如下:

该补丁主要有两点需要注意的,提前对环境进行准备:

第一点:要求 Opatch 工具的版本必须是 11.2.0.1.3 及之后,我们来通过 opatch version 命令查看下当前版本信息,如下:

[grid@rac1OPatch]$ ./opatch  version

InvokingOPatch 11.1.0.6.6

OPatchVersion: 11.1.0.6.6

OPatchsucceeded.

可以看到版本不符合要求,这就需要我们在 metalink 上去下载符合要求的 Opatch 工具,下载地址在说明文档中有连接,我们直接点击进入连接下载 p6880880_112000_LINUX.zip 压缩文件,然后通过下面的命令,解压到 crs_home 目录覆盖原来的 Opatach 文件,如下:

[grid@rac1~]$ unzip p6880880_112000_LINUX.zip -d /u01/app/grid/

Archive:  p6880880_112000_LINUX.zip

  creating: /u01/app/grid/OPatch/oplan/

  inflating:/u01/app/grid/OPatch/oplan/README.html 

  inflating:/u01/app/grid/OPatch/oplan/README.txt 

  creating: /u01/app/grid/OPatch/oplan/jlib/

  inflating: /u01/app/grid/OPatch/oplan/jlib/oplan.jar

……

然后切换到 oracle 用户,同样解压到 oracle_home 目录,如下

[oracle@rac1~]$ unzip p6880880_112000_LINUX.zip -d /u01/app/oracle/product/11.2.0/db_1/

Archive:  p6880880_112000_LINUX.zip

  creating:/u01/app/oracle/product/11.2.0/db_1/OPatch/oplan/

  inflating:/u01/app/oracle/product/11.2.0/db_1/OPatch/oplan/README.html 

  inflating:/u01/app/oracle/product/11.2.0/db_1/OPatch/oplan/README.txt 

  creating:/u01/app/oracle/product/11.2.0/db_1/OPatch/oplan/jlib/

  inflating: /u01/app/oracle/product/11.2.0/db_1/OPatch/oplan/jlib/oplan.jar 

  inflating:/u01/app/oracle/product/11.2.0/db_1/OPatch/oplan/jlib/oracle.oplan.classpath.jar 

  inflating:/u01/app/oracle/product/11.2.0/db_1/OPatch/oplan/jlib/automation.jar 

  inflating: /u01/app/oracle/product/11.2.0/db_1/OPatch/oplan/jlib/OsysModel.jar 

  inflating:/u01/app/oracle/product/11.2.0/db_1/OPatch/oplan/jlib/EMrepoDrivers.jar 

……

然后分别再用 grid 和 oracle 用户确认下其对应的 OPatch 工具的版本情况,是否已经更新,如下

[grid@rac1OPatch]$ ./opatch version

OPatchVersion: 11.2.0.3.5

OPatchsucceeded

[oracle@rac1OPatch]$ ./opatch version

OPatchVersion: 11.2.0.3.5

OPatchsucceeded

当然,这里只操作了 1 号节点,要确保 RAC 所有节点重复都进行了该操作。现在看到,已经更新为最新的 11.2.0.3.5 版本,符合本次补丁对 Opatch 工具的要求。

第二点:OCM(OracleConfiguration Manager)配置,在运行补丁的时候,需要配置 OCM,方法很简单,在说明文档中有详细的记录,只需要在以 grid 用户执行 $crs_home/OPatch/ocm/bin/emocmrsp 根据提示进行配置,配置完成后会生成个 ocm.rsp 文件,后续会用到这个文件。

[grid@rac1patch]$ /u01/app/grid/OPatch/ocm/emocmrsp

5.3.3.  前提补丁安装

在确认安装条件满足后,就开始正式的准备 p9655006 补丁的安装,首先安装 GI 的补丁,安装的时候要求 crs 进程必须启动,因此这里我们只需要停止数据库实例,我们先打 1 号节点的补丁,因此先停止 1 号节点的实例,如下:

[grid@rac1 bin]$srvctl stop instance -d orcl -i orcl1

然后我们要以 root 用户,执行 opatchauto 执行补丁升级,后面要跟上补丁的解压目录和 crs_home 目录,如下,

[root@rac1bin]# opatch auto /home/grid/stage/patch -oh /u01/app/grid/(这里是 CRS_HOME目录)

Executing/u01/app/grid/perl/bin/perl /u01/app/grid/OPatch/crs/patch11202.pl -patchdir/home/grid/stage -patchn patch -oh /u01/app/grid/ -paramfile/u01/app/grid/crs/install/crsconfig_params

Usingconfiguration parameter file: /u01/app/grid/crs/install/crsconfig_params

OPatch  is bundled with OCM, Enter the absolute OCMresponse file path:

/home/grid/stage/patch/ocm.rsp(这里要求输入刚才生成的 ocm.rsp文件)

Unableto determine if /u01/app/grid is shared oracle home

Enter’yes’ if this is not a shared home or if the prerequiste actions are performedto patch this shared home (yes/no):yes

Successfullyunlock /u01/app/grid

patch/home/grid/stage/patch/9655006  applysuccessful for home  /u01/app/grid

patch/home/grid/stage/patch/9654983  applysuccessful for home  /u01/app/grid

最后我们可以看到提示,补丁成功安装,接下来同样的在节点 2 上进行补丁安装,方法相同,这里就不再描述,接下来用同样的方式给数据库 database 打补丁,同样的先在节点 1 上进行补丁安装,命令如下

[root@rac1bin]# opatch auto /home/grid/stage/patch/ -oh /u01/app/oracle/product/11.2.0/db_1/(这个是 db_home目录)

xecuting/u01/app/grid/perl/bin/perl /u01/app/grid/OPatch/crs/patch11202.pl -patchdir/home/grid/stage -patchn patch -oh /u01/app/oracle/product/11.2.0/db_1/-paramfile /u01/app/grid/crs/install/crsconfig_params

INCis /home/grid/stage/patch/9655006/files/crs/install /u01/app/grid/crs/install/u01/app/grid/perl/lib/5.10.0/i686-linux-thread-multi/u01/app/grid/perl/lib/5.10.0/u01/app/grid/perl/lib/site_perl/5.10.0/i686-linux-thread-multi/u01/app/grid/perl/lib/site_perl/5.10.0 .

opatchauto log file location is /u01/app/grid/OPatch/crs/../../cfgtoollogs/opatchauto2013-11-05_11-57-18.log

2013-11-0511:57:18: Parsing the host name

2013-11-0511:57:18: Checking for super user privileges

2013-11-0511:57:18: User has super user privileges

DetectedOracle Clusterware install

Usingconfiguration parameter file: /u01/app/grid/crs/install/crsconfig_params

OPatch  is bundled with OCM, Enter the absolute OCMresponse file path:

/home/grid/stage/patch/ocm.rsp

Unableto determine if /u01/app/oracle/product/11.2.0/db_1 is shared oracle home

Enter’yes’ if this is not a shared home or if the prerequiste actions are performedto patch this shared home (yes/no):yes

Unableto determine if /u01/app/oracle/product/11.2.0/db_1 is shared oracle home

Enter’yes’ if this is not a shared home or if the prerequiste actions are performedto patch this shared home (yes/no):yes

patch/home/grid/stage/patch/9655006/custom/server/9655006  apply successful for home  /u01/app/oracle/product/11.2.0/db_1

patch/home/grid/stage/patch/9654983  applysuccessful for home /u01/app/oracle/product/11.2.0/db_1

我们可以通过 opatch lsinventory 命令检查补丁的安装情况,如下

[oracle@demo-rac1OPatch]$ ./opatch lsinventory

OracleInterim Patch Installer version 11.2.0.3.5

Copyright(c) 2013, Oracle Corporation.  All rightsreserved.

OracleHome      :/u01/app/oracle/product/11.2.0/db_1

CentralInventory : /u01/app/oraInventory

  from          :/u01/app/oracle/product/11.2.0/db_1/oraInst.loc

OPatchversion    : 11.2.0.3.5

OUIversion      : 11.2.0.1.0

Logfile location :/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2013-11-05_12-04-17PM_1.log

LsinventoryOutput file location :/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2013-11-05_12-04-17PM.txt

——————————————————————————–

InstalledTop-level Products (1):

OracleDatabase 11g                                                 11.2.0.1.0

Thereare 1 products installed in this Oracle Home.

Interimpatches (2) :

Patch  9654983     : applied on Tue Nov 05 12:00:22 CST 2013

UniquePatch ID:  12651759

  Created on 17 Jun 2010, 03:31:21 hrs PST8PDT

  Bugs fixed:

    9068088, 9363384, 8865718, 8837736,8801119, 9054253, 8725286, 8974548

    9093300, 8909984, 8755082, 8780372,8664189, 8769569, 7519406, 8822531

    7705591, 8650719, 9637033, 8639114,8723477, 8729793, 8919682, 8856478

    9001453, 8733749, 8565708, 8735201,8684517, 8870559, 8773383, 8981059

    8812705, 9488887, 8813366, 9242411,8822832, 8897784, 8760714, 8775569

    8671349, 8898589, 9714832, 8642202,9011088, 9170608, 9369797, 9165206

    8834636, 8891037, 8431487, 8570322,8685253, 8872096, 8718952, 8799099

    9032717, 9399090, 9546223, 9713537,8588519, 8783738, 8834425, 9454385

    8856497, 8890026, 8721315, 8818175,8674263, 9145541, 8720447, 9272086

    9467635, 9010222, 9197917, 8991997,8661168, 8803762, 8769239, 9654983

    8706590, 8778277, 8815639, 9027691,9454036, 9454037, 9454038, 9255542

    8761974, 9275072, 8496830, 8702892,8818983, 8475069, 8875671, 9328668

    8798317, 8891929, 8774868, 8820324,8544696, 8702535, 8268775, 9036013

    9363145, 8933870, 8405205, 9467727,8822365, 9676419, 8761260, 8790767

    8795418, 8913269, 8717461, 8607693,8861700, 8330783, 8780281, 8780711

    8784929, 9341448, 9015983, 9119194,8828328, 8665189, 8717031, 8832205

    9676420, 8633358, 9321701, 9655013,8796511, 9167285, 8782971, 8756598

    8703064, 9066116, 9007102, 9461782,9352237, 8505803, 8753903, 9216806

    8918433, 9057443, 8790561, 8733225,9067282, 8928276, 9210925

Patch  9655006     : applied on Tue Nov 05 11:58:48 CST 2013

UniquePatch ID:  12651759

  Created on 6 Jul 2010, 12:02:48 hrs PST8PDT

  Bugs fixed:

    9655006, 9778840, 9343627, 9783609,9262748

可以看到补丁的安装情况,PSU 需要的几个补丁都已经安装上去,最后就是执行下数据字典更新脚本,RAC 环境下只要保证一个实例启动状态,然后在 oracle 用户下执行下面的语句,执行脚本

cd$ORACLE_HOME/rdbms/admin

sqlplus/nolog

SQL>CONNECT / AS SYSDBA

SQL>@catbundle.sql psu apply

SQL>QUIT

      这个脚本会更新数据字典表,如果不执行可能使用过程中会出现一些莫名的错误,因此千万不要忘记执行。

5.4.  PSU 补丁安装

接下来在完成了前提补丁的安装后,我们又再次回答 PSU 的说明文档,接着看还有那些先决条件需要准备,为了保障 make, ar, ld, 和 nm 命令能够直接被调用,需要提前设置环境变量路径,如下

exportPATH=$PATH:/usr/ccs/bin

在经过之前前提补丁的安装后,接下来再安装 PSU 补丁就应该轻车熟路,11.2.0.1.6PSU 补丁的安装过程就如同一个‘个别补丁‘一样简单,先在节点 1 上进入解压的目录(一般为 12419378),然后直接运行 opatch apply 如下,当然前提是数据库实例已经关闭,否则会在环境校验阶段出现错误提示,关闭实例的操作这里就不再演示,可以一个节点一个节点的操作,也可以所有节点一起操作,下面我们直接进行补丁的安装:

[oracle@rac1 12419378]$ opatch apply

OracleInterim Patch Installer version 11.2.0.3.5

Copyright(c) 2013, Oracle Corporation.  All rightsreserved.

OracleHome      :/u01/app/oracle/product/11.2.0/db_1

CentralInventory : /u01/app/oraInventory

  from          :/u01/app/oracle/product/11.2.0/db_1/oraInst.loc

OPatchversion    : 11.2.0.3.5

OUIversion      : 11.2.0.1.0

Logfile location :/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/12419378_Nov_11_2013_16_17_40/apply2013-11-11_16-17-40PM_1.log

Applyinginterim patch ‘12419378’ to OH ‘/u01/app/oracle/product/11.2.0/db_1’

Verifyingenvironment and performing prerequisite checks…

Patch12419378: Optional component(s) missing : [oracle.client, 11.2.0.1.0]

Interimpatch 12419378 is a superset of the patch(es) [9654983,9655006] in the Oracle Home

OPatchwill roll back the subset patches and apply the given patch.

Allchecks passed.(环境检查成功)

Thisnode is part of an Oracle Real Application Cluster.

Remotenodes: ‘demo-rac1’

Localnode: ‘demo-rac2’

Pleaseshutdown Oracle instances running out of this ORACLE_HOME on the local system.

(OracleHome = ‘/u01/app/oracle/product/11.2.0/db_1’)

……

Enter’yes’ if this is not a shared home or if the prerequiste actions are performedto patch this shared home (yes/no):yes

patch/home/oracle/12419378  apply successfulfor home /u01/app/oracle/product/11.2.0/db_1

以上同样的操作在其他节点也进行一次, 补丁安装成功后,启动数据库实例,同样要对数据字典进行更新,该操作只需要在一个节点上执行就行,如下:

cd$ORACLE_HOME/rdbms/admin

sqlplus/nolog

SQL>CONNECT / AS SYSDBA

SQL>@catbundle.sql psu apply

SQL>QUIT

这步操作不会出现太大的问题,在补丁安装完成后,本次 11.2.0.1.6PSU 补丁的安装全部过程就结束, 我们可以通过下面的命令进行校验:

[oracle@rac1admin]$ opatch lsinventory -bugs_fixed | grep -i ‘DATABASE PSU’

9352237    12419378 Mon Nov 11 16:14:36 CST 2013  DATABASE PSU 11.2.0.1.1

9654983    12419378 Mon Nov 11 16:14:36 CST 2013  DATABASE PSU 11.2.0.1.2 (INCLUDES CPUJUL2010)

9952216    12419378 Mon Nov 11 16:14:36 CST 2013  DATABASE PSU 11.2.0.1.3 (INCLUDES CPUOCT2010)

10248516  12419378 Mon Nov 11 16:14:36 CST 2013  database psu 11.2.0.1.4 (includes cpujan2011)

11724930  12419378 Mon Nov 11 16:14:36 CST 2013  database psu 11.2.0.1.5 (includes cpuapr2011)

12419378  12419378 Mon Nov 11 16:14:36 CST 2013  DATABASE PSU 11.2.0.1.6 (INCLUDES CPUJUL2011)

从列出的结果目录可以看到,我们现在的已经成果安装上了 11.2.0.1.6PSU 的补丁,而且我们可以看到,由于 PSU 补丁是累积的,因此还包括了 11.2.0.1.1~11.2.0.1.5 的 PSU 补丁,至此整个案例的补丁安装的演示就结束了。

6. 结语

通过上面内容我们介绍了 ORACLE 的补丁概念,知道了补丁的分类,并且了解什么是’个别补丁’和 PSU 补丁,以及如何通过 opatch 工具进行补丁的安装,可以看到安装过程并不复杂,主要注意以下几点:

1.    确定补丁的正确性,包括补丁名称、适用数据库版本、操作系统等

2.    认真阅读补丁的说明文档,一定要按照说明文档要求安装补丁;

3.    安装前最好在模拟环境中进行测试,确认安装过程和结果不出现意外;

4.    安装过程中注意执行顺序,安装完毕和进行检查,确认补丁是否安装成功。

最后想说一句,补丁安装前一定要注意备份,安装的风险随着数据库应用复杂性和数据量的增长会成倍增长,对一个才实施的空数据库安装补丁肯定和一个已经运行很久 BT 级的数据库安装还是有很大的区别,总之做好备份是最最关键的一步。

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137673.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计16422字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中