Opatch使用细则
Patch 21352635 - Database Patch Set Update 11.2.0.4.8
一、OPatch工具检查及升级
OPatch工具包,在安装目录$ORACLE_HOME下,PSU安装升级,都是通过OPatch来完成的。PSU的升级安装对OPatch的版本有一定的要求,关于这一点,可以查看PSU的Readme文档。例如,要安装p21352635_112040_Linux-x86-64,则必须要11.2.0.3.6或更高版本的OPatch。
1.1、确定当前系统的OPatch版本。
方法如下所示:
[oracle@Oracle11g ~]$cd /u01/app/oracle/product/11.2.0/db_1/OPatch/ [oracle@Oracle11g OPatch]$./opatch version Invoking OPatch 11.1.0.6.6
OPatch Version: 11.1.0.6.6
OPatch succeeded. |
显然,当前系统的OPatch版本不适合安装补丁p21352635_112040_Linux-x86-64,要先升级OPatch,升级步骤如下:
1.2、备份当前版本的OPatch
[oracle@Oracle11g db_1]$ tar cvf OPatch.tar OPatch/# 也可以直接覆盖 [oracle@Oracle11g db_1]$ cd OPatch [oracle@Oracle11g OPatch]$ rm -rf * --删除文件 |
1.3、下载对于版本的OPatch解压至$ORACLE_HOME目录下
然后授予执行权限。
[oracle@Oracle11g opatchs]$ cd /home/oracle/opatchs --这个是存放补丁包的目录 [oracle@Oracle11g opatchs]$ ls -ltr 总计 122932 drwxrwxr-x 10 oracle oinstall 4096 2015-09-01 21352635 -rw-rw-r-- 1 oracle oinstall 65235 2015-10-24 PatchSearch.xml -rw-r--r-- 1 oracle oinstall 72935280 2017-06-19 p21352635_112040_Linux-x86-64.zip–安全漏洞的补丁包 -rw-r--r-- 1 oracle oinstall 52733900 2017-06-19 p6880880_112000_Linux-x86-64.zip --升级opatch的补丁包
[oracle@Oracle11g opatchs]$ unzip p6880880_112000_Linux-x86-64.zip -d /u01/app/oracle/product/11.2.0/db_1 --解压opatch升级包至$ORACLE_HOME目录下 [oracle@Oracle11g OPatch]$ cd /u01/app/oracle/product/11.2.0/db_1/OPatch [oracle@Oracle11g OPatch]$ chmod +x opatch opatch.bat opatchdiag opatchdiag.bat |
1.4、重新验证OPatch版本
[oracle@Oracle11g OPatch]$ cd /u01/app/oracle/product/11.2.0/db_1/OPatch
[oracle@Oracle11g OPatch]$./opatch version OPatch Version: 11.2.0.3.12
OPatch succeeded.–ok,opatch版本升级成功 |
二、应用补丁
主要,首先必须保证数据库实例+监听正常关闭。
[oracle@Oracle11g opatchs]$ cd /home/oracle/opatchs这是存放补丁包的路径 [oracle@Oracle11g opatchs]$ unzip p21352635_112040_Linux-x86-64.zip …… 篇幅很长,略 …… [oracle@Oracle11g opatchs]$ cd 21352635/
|
四、运行catbundle.sql和utlrp.sql脚本,对于RAC环境,仅需要在一个节点上运行。
(1)、catbundle.sql将补丁信息反射到数据库中,使数据库知道你最后一次打了什么补丁或者回滚了哪些补丁。 [oracle@Oracle11g 21352635]$ cd $ORACLE_HOME/rdbms/admin [oracle@Oracle11g admin]$ sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> STARTUP; SQL>@catbundle.sql psu apply SQL>exit (2)、utlrp.sql脚本可以在数据库运行的状态下编译数据库中的invalid对象,Oracle建议在对数据库进行迁移、升级、降级后都运行一遍utlrp.sql以编译无效对象。 cd $ORACLE_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL>@utlrp.sql |
(3)、查看 $ORACLE_HOME/cfgtoollogs/catbundle or
$ORACLE_BASE/cfgtoollogs/catbundle目录下的的日志文件是否记录错误。 catbundle_PSU_<database SID>_APPLY_<TIMESTAMP>.log catbundle_PSU_<database SID>_GENERATE_<TIMESTAMP>.log 至此,本次patch过程结束。
|
三、确认升级后补丁信息
(1)、通过OPatch的信息库记录,可以看到补丁信息。 [oracle@Oracle11g 21352635]$ $ORACLE_HOME/OPatch/opatchlsinventory Oracle Interim Patch Installer version 11.2.0.3.6 Copyright (c) 2013, Oracle Corporation. All rights reserved.
Oracle Home : /u01/app/oracle/product/11.2.0/db_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc OPatch version : 11.2.0.3.6 OUI version : 11.2.0.4.0 Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2016-07-12_11-01-23AM_1.log
Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2016-07-12_11-01-23AM.txt
-------------------------------------------------------------------------------- Installed Top-level Products (1):
Oracle Database 11g 11.2.0.4.0 There are 1 product(s) installed in this Oracle Home.
Interim patches (1) :
Patch 21352635 : applied on Tue Jul 12 09:50:04 CST 2016 Unique Patch ID: 19227862 Patch description: "Database Patch Set Update : 11.2.0.4.8 (21352635)" Created on 1 Sep 2015, 07:49:44 hrs Sub-patch 20760982; "Database Patch Set Update : 11.2.0.4.7 (20760982)" Sub-patch 20299013; "Database Patch Set Update : 11.2.0.4.6 (20299013)" ……. 篇幅太长略 …… --------------------------------------------------------------------------------
OPatch succeeded. |