OPatch 的更新,以及安装oracle的小补丁

1、根据数据库的版本下载最新的OPatch
2、把旧的$ORACLE_HOME/OPatch目录备份,然后把最新下载的OPatch 拷贝到$ORACLE_HOME下
3、应用新的补丁


   从9.2版开始,Oracle公司实现了个别补丁安装工具opatch. opatch使用一个称为inventory的系统数据结构(严格说是与oui共享inventory),集中管理所有已安装的个别补丁;个别补丁的安装和卸载都使用opatch命令完成,
冲突检测也由opatch在安装时自动完成;提供列表命令可以很方便得到已安装个别补丁的信息。
  
10g(10.1和10.2)版本中,opatch作为一个标准工具,在安装时自动安装。(安装在$ORACLE_HOME/OPatch下。)而对于9.2版,需要从metalink下载opatch.无论是哪一个版本,系统中是否已经安装opatch,
在使用之前,应从metalink下载最新版本的opatch.很遗憾,由于系统实现的问题,10.2使用的opatch与之前版本(10.1和9.2)使用的opatch不兼容,不能混用,这一点必须注意。
  
opatch是使用perl编写的脚本程序(其中也使用JAVA API)。使用的perl版本是5.6版,虽然在5.6之前的版本中也可运行,但应尽可能安装5.6或以上的版本的perl. 对于DBA来说一个好消息是,
如果安装9.2版软件时保留了HTTP服务器,则在$ORACLE_HOME/Apache下会自动安装perl.(10g会自动安装配置perl和opatch.)
 
       因为OPatch 版本之间的差别也带来一些不方便。 比如我们使用OPatch 工具来升级数据库到10.2.0.5.x时,就必须要求OPatch的版本达到10.2.0.5 以上,
而我们将实例升级到10.2.0.5时,OPatch 的版本缺是到了10.2.0.4.9. 达不到我们的要求。 这时候,就需要单独从MOS 上下载高版本的OPatch,更新ORACLE_HOME 下的OPatch 之后,才能继续进行升级。

SQL> select * From v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

[oracle@rac1 OPatch]$ ./opatch version
Invoking OPatch 11.1.0.6.6
OPatch Version: 11.1.0.6.6
OPatch succeeded.



更新OPatch 工具方法:
更新OPatch 工具的方法很简单, 只需要从MOS 上下载对应Patch,然后覆盖到ORACLE_HOME 下的OPatch目录即可。 当然覆盖之前,最好备份一下。
Oracle Database Server Products (including CRS/ASM/RAC)

备份旧的OPatch:
 mv  $ORACLE_HOME/OPatch    $ORACLE_HOME/OPatch.bak

在$ORACLE_HOME下解压opatch
[oracle@rac2 dbhome_1]$ unzip p6880880_112000_Linux-x86-64.zip 

查看opatch版本:
[oracle@rac2 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.5
OPatch succeeded.

[oracle@rac2 OPatch]$ ./opatch lsinventory
Oracle 中间补丁程序安装程序版本 11.2.0.3.5
版权所有 (c) 2013, Oracle Corporation。保留所有权利。
Oracle Home       : /u01/app/oracle/product/11.2.0/dbhome_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
OPatch version    : 11.2.0.3.5
OUI version       : 11.2.0.1.0
Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2013-10-19_05-56-55上午_1.log
Lsinventory Output file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2013-10-19_05-56-55上午.txt
--------------------------------------------------------------------------------
已安装的顶级产品 (1):
Oracle Database 11g                                                  11.2.0.1.0
此 Oracle 主目录中已安装 1 个产品。
此 Oracle 主目录中未安装任何中间补丁程序。
包含多个节点的 RAC 系统
  Local node = rac2
  Remote node = rac1
--------------------------------------------------------------------------------
OPatch succeeded.
在这个给集群更新opatch,应该在每个节点上都覆盖$ORACLE_HOME/OPatch目录,但是覆盖前请做好备份

利用OPatch打补丁:
把补丁拷贝到$ORACLE_HOME/OPatch  下
然后解压:
[oracle@rac2 OPatch]$ unzip p10270687_112010_Linux-x86-64.zip 


在这里千万不要去改补丁的名称,这个补丁的名称就是修复bug,

注意:

加压补丁后,需要查看补丁下面的readme.txt,根据read me里面的提示来安装补丁。



应用补丁:
[oracle@rac2 OPatch]$ $ORACLE_HOME/OPatch/opatch apply


Oracle 中间补丁程序安装程序版本 11.2.0.3.5
版权所有 (c) 2013, Oracle Corporation。保留所有权利。
Oracle Home       : /u01/app/oracle/product/11.2.0/dbhome_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
OPatch version    : 11.2.0.3.5
OUI version       : 11.2.0.1.0
Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/10270687_Oct_19_2013_06_12_11/apply2013-10-19_06-12-11上午_1.log
Applying interim patch '10270687' to OH '/u01/app/oracle/product/11.2.0/dbhome_1'
口令口令 (可选):                                                                        

无法与 Oracle Configuration Manager 服务器建立连接。                                                                          

主机名 (https://ccr.oracle.com) 未知。                                                                                                                                                                                  

无法与 Oracle 建立网络连接。请按以下格式指定 Oracle Support Hub 的 URL:  http[s]://<OracleSupportHubHost>:<OracleSupportHubPort>                                                 如果不希望通过 Oracle Support Hub 配置 OCM, 请输入 NONE                                                    

 Oracle Support Hub URL:                                                                                    

指定了无效的 Oracle Support Hub 地址 ()。                                                                                                                                                                              

无法与 Oracle 建立网络连接。请按以下格式指定 Oracle Support Hub 的 URL:  http[s]://<OracleSupportHubHost>:<OracleSupportHubPort>                                                

如果不希望通过 Oracle Support Hub 配置 OCM, 请输入 NONE                                                    

Oracle Support Hub URL: NONE                                                                                                                                                                                            

无法与 Oracle 建立网络连接。如果您的系统需要代理服务器来建立出站 Internet 连接, 请按以下格式输入代理服务器详细信息:                                                                                                        

 [<proxy-user>@]<proxy-host>[:<proxy-port>]                                                              

如果不希望收到有关配置中的严重安全问题的通知, 请输入“NONE”                                              

 代理规范: NONE                                                                                                                                                                                                                                                        此节点是 Oracle Real Application Cluster 的一部分。                                                        

远程节点: 'rac1'                                                                                            

本地节点: 'rac2'                                                                                            

请关闭本地系统上在此 ORACLE_HOME 之外运行的 Oracle 实例。                                                  

(Oracle 主目录= '/u01/app/oracle/product/11.2.0/dbhome_1')                                                                                                                                                                                              本地系统是否已准备打补丁? [y|n]                                                                             Y                                                                                                           User Responded with: Y
Backing up files...


正在为组件 oracle.rdbms, 11.2.0.1.0 打补丁...
Verifying the update...
本地系统已打补丁。您可以在本地系统上重新启动 Oracle 实例。
在滚动模式下打补丁。
接下来将为节点 'rac1' 打补丁。
请关闭 'rac1' 上在此 ORACLE_HOME 之外运行的 Oracle 实例。
(Oracle 主目录 = '/u01/app/oracle/product/11.2.0/dbhome_1')
该节点是否已准备打补丁? [y|n]
y
User Responded with: Y
Updating nodes 'rac1' 
   Apply-related files are:
     FP = "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/copy_files.txt"
     DP = "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/copy_dirs.txt"
     MP = "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/make_cmds.txt"
     RC = "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/remote_cmds.txt"
Instantiating the file "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/copy_files.txt.instantiated" by replacing $ORACLE_HOME in "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/copy_files.txt" with actual path.
Propagating files to remote nodes...
Instantiating the file "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/copy_dirs.txt.instantiated" by replacing $ORACLE_HOME in "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/copy_dirs.txt" with actual path.
Propagating directories to remote nodes...
Instantiating the file "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/make_cmds.txt.instantiated" by replacing $ORACLE_HOME in "/u01/app/oracle/product/11.2.0/dbhome_1/.patch_storage/10270687_Sep_7_2011_09_51_35/rac/make_cmds.txt" with actual path.
Running command on remote node 'rac1': 
cd /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib; /usr/bin/make -f ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 || echo REMOTE_MAKE_FAILED::>&2 
节点 'rac1' 已打补丁。您可以在该节点上重新启动 Oracle 实例。
远程节点上存在重链接。一定要检查节点 'rac1'  上的二进制文件的大小和时间戳。
已在远程节点上调用以下 make 命令:
'cd /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib; /usr/bin/make -f ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1


Patch 10270687 successfully applied
Log file location: /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/10270687_Oct_19_2013_06_16_28/apply2013-10-19_06-16-28上午_1.log


OPatch succeeded.



[oracle@rac2 OPatch]$ ./opatch --help
Oracle 中间补丁程序安装程序版本 11.2.0.3.5
版权所有 (c) 2013, Oracle Corporation。保留所有权利。
语法错误... Unrecognized Command or Option (--help): 1st argument must be one of the following:
   apply
   napply
   rollback
   nrollback
   lsinventory
   lsinv
   lspatches
   query
   util
   prereq
   version
   -help
   -help -fmw

Please use the option 'opatch  -help' to get correct syntax

OPatch failed with error code 14
查看补丁是否安装成功:
[oracle@rac2 OPatch]$ ./opatch lsinventory
Oracle 中间补丁程序安装程序版本 11.2.0.3.5
版权所有 (c) 2013, Oracle Corporation。保留所有权利。
Oracle Home       : /u01/app/oracle/product/11.2.0/dbhome_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
OPatch version    : 11.2.0.3.5
OUI version       : 11.2.0.1.0
Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2013-10-19_06-29-45上午_1.log
Lsinventory Output file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2013-10-19_06-29-45上午.txt
--------------------------------------------------------------------------------
已安装的顶级产品 (1):
Oracle Database 11g                                                  11.2.0.1.0
此 Oracle 主目录中已安装 1 个产品。
中间补丁程序 (1) :
Patch  10270687     : applied on Sat Oct 19 06:19:12 CST 2013
Unique Patch ID:  13996128
   Created on 7 Sep 2011, 09:51:35 hrs PST8PDT
   Bugs fixed:
     10270687

包含多个节点的 RAC 系统
  Local node = rac2
  Remote node = rac1
--------------------------------------------------------------------------------
OPatch succeeded.


给rac升级补丁也是,在每个节点分别执行$ORACLE_HOME/OPatch apply 


卸载补丁:

 执行卸载命令时,也必须使10270687子目录成为当前目录。其中,Rollback命令需要两个参数:-id给出个别补丁号;-ph 给出个别补丁解压缩后的路径。
    $ $ORACLE_HOME/OPatch/opatch rollback -id 4518443 -ph /…/10270687
    随后再对inventory列表,则会看到这一个别补丁已经被移去。




使用opatch显示已安装的版本信息
    不需要启动数据库,执行加选项的对inventory的列表命令,可以得到已安装的软件的各个组件的详细版本信息。
    $ $ORACLE_HOME/OPatch/opatch lsinventory -detail


OPatch的版本:
If Oracle Product Release Is Then Download Opatch Release OPATCH Release 
(as of 09-JUL-2013)
9.2.0.x or 10.1.0.x "10.1.0.0.0" (description "OPatch 9i, 10.1") 1.0.0.0.64
10.2.0.x "10.2.0.0.0" (description "OPatch 10.2") 10.2.0.5.1
11.1.0.x "11.1.0.0.0" (description "OPatch 11.1") 11.1.0.10.1
11.2.0.x "11.2.0.0.0" (description "OPatch 11.2") 11.2.0.3.4
For Oracle9i Release 2 (9.2.0.x) and Oracle10g Release 1 (10.1.0.x),


select release "10.1.0.0.0" (description "OPatch 9i, 10.1") and download


p6880880_101000_platform.zip


As of 08-Jul-2011 the OPatch release is 1.0.0.0.64


For Oracle10g Release 2 (10.2.0.x),


select release "10.2.0.0.0" (description "OPatch 10.2") and download


p6880880_102000_platform.zip


As of 18-Nov-2010 the OPatch release is 10.2.0.5.1


For Oracle11g Release 1 (11.1.0.x),


select release "11.1.0.0.0" (description "OPatch 11.1") and download


p6880880_111000_platform.zip


As of 08-Jul-2013 the OPatch release is 11.1.0.10.1


For Oracle11g Release 2 (11.2.0.x),


select release "11.2.0.0.0" (description "OPatch 11.2") and download


p6880880_112000_platform.zip


As of 14-Apr-2013 the OPatch release is 11.2.0.3.4


For Oracle Database 12c (12.1.0.x)


select release "12.1.0.1.0" (description "OPatch 12.1") and download


p6880880_121010_platform.zip


As of 26-Jun-2013 the Opatch release is 12.1.0.1.1





你可能感兴趣的:(OPatch 的更新,以及安装oracle的小补丁)