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):