环境:两节点RAC(RHEL 6.4 + GI 11.2.0.4 + Oracle 11.2.0.4)
需求:安装最新PSU补丁11.2.0.4.7
- 1.下载补丁和最新OPatch
- 2.检查数据库当前OPatch版本
- 3.更新OPatch
- 4.解压补丁文件
- 5.检查补丁之间有无冲突
- 6.停止数据库和本地crs服务
- 7.更新补丁
- 8.登录数据库执行升级字典操作
- 9.验证补丁更新结果
MOS 补丁程序和更新程序搜索到最新的PSU:截至目前最新是11.2.0.4.7
GRID INFRASTRUCTURE PATCH SET UPDATE 11.2.0.4.7 (JUL2015) (补丁程序) p20996923_112040_Linux-x86-64.zip 635.8 MB
OPatch下载地址:
https://updates.oracle.com/download/6880880.html
RAC所有节点的GI home和DB home都需要检查。
$ $ORACLE_HOME/OPatch/opatch version3. 更新OPatch
RAC所有节点的GI home和DB home都需要更新。
$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak $ unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME $ $ORACLE_HOME/OPatch/opatch version
需要注意grid用户$ORACLE_HOME 权限。
$ echo $ORACLE_HOME $ ls -lh $ORACLE_HOME/../ # chmod 775 /opt/app/11.2.0/grid4. 解压补丁文件
$ unzip p20996923_112040_Linux-x86-64.zip5. 检查补丁之间有无冲突
检查需要打的补丁与现有补丁有无冲突.
$ cd 20996923 $ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
grid用户执行结果:
$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ Oracle Interim Patch Installer version 11.2.0.3.12 Copyright (c) 2015, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /opt/app/11.2.0/grid Central Inventory : /opt/app/oraInventory from : /opt/app/11.2.0/grid/oraInst.loc OPatch version : 11.2.0.3.12 OUI version : 11.2.0.4.0 Log file location : /opt/app/11.2.0/grid/cfgtoollogs/opatch/opatch2015-10-23_11-53-52AM_1.log Invoking prereq "checkconflictagainstohwithdetail" Prereq "checkConflictAgainstOHWithDetail" passed. OPatch succeeded.
oracle执行结果:
$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ Oracle Interim Patch Installer version 11.2.0.3.12 Copyright (c) 2015, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /opt/app/oracle/product/11.2.0/dbhome_1 Central Inventory : /opt/app/oraInventory from : /opt/app/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.12 OUI version : 11.2.0.4.0 Log file location : /opt/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2015-10-23_11-56-06AM_1.log Invoking prereq "checkconflictagainstohwithdetail" Prereq "checkConflictAgainstOHWithDetail" passed. OPatch succeeded.6. 停止数据库和本地crs服务
grid用户登录节点1
su – oracle $ $ORACLE_HOME/bin/srvctl stop database –d su – root # $GRID_HOME/crs/install/rootcrs.pl -unlock7. 更新补丁 7.1 root用户,指定不同ORACLE_HOME,自动打补丁(失败)
# export ORACLE_HOME=/opt/app/11.2.0/grid # $ORACLE_HOME/OPatch/opatch auto -oh $ORACLE_HOME/ -ocmrf $ORACLE_HOME/OPatch/ocm/bin/emocmrsp # export ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1 # $ORACLE_HOME/OPatch/opatch auto -oh $ORACLE_HOME/ -ocmrf $ORACLE_HOME/OPatch/ocm/bin/emocmrsp7.2 尝试手工打补丁 7.2.1 节点1 grid home
[grid@jyracdb1 ~]$ $GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local /opt/app/media/20996923/ Oracle Interim Patch Installer version 11.2.0.3.12 Copyright (c) 2015, Oracle Corporation. All rights reserved. Oracle Home : /opt/app/11.2.0/grid Central Inventory : /opt/app/oraInventory from : /opt/app/11.2.0/grid/oraInst.loc OPatch version : 11.2.0.3.12 OUI version : 11.2.0.4.0 Log file location : /opt/app/11.2.0/grid/cfgtoollogs/opatch/opatch2015-10-23_16-06-35PM_1.log Verifying environment and performing prerequisite checks... OPatch continues with these patches: 20299019 17478514 18031668 18522509 19121551 19769489 20299013 20760982 20831122 Do you want to proceed? [y|n] y User Responded with: Y All checks passed. Provide your email address to be informed of security issues, install and initiate Oracle Configuration Manager. Easier for you if you use your My Oracle Support Email address/User Name. Visit http://www.oracle.com/support/policies.html for details. Email address/User Name: You have not provided an email address for notification of security issues. Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: yes Please shutdown Oracle instances running out of this ORACLE_HOME on the local system. (Oracle Home = '/opt/app/11.2.0/grid') Is the local system ready for patching? [y|n] y User Responded with: Y Backing up files... Applying interim patch '20299019' to OH '/opt/app/11.2.0/grid' Patching component oracle.usm, 11.2.0.4.0... Applying sub-patch '17478514' to OH '/opt/app/11.2.0/grid' ApplySession: Optional component(s) [ oracle.sdo, 11.2.0.4.0 ] , [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.xdk, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.sdo.locator, 11.2.0.4.0... Patching component oracle.nlsrtl.rsf, 11.2.0.4.0... Patching component oracle.xdk.rsf, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Applying sub-patch '18031668' to OH '/opt/app/11.2.0/grid' ApplySession: Optional component(s) [ oracle.precomp.common, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.ldap.rsf, 11.2.0.4.0... Patching component oracle.rdbms.crs, 11.2.0.4.0... Patching component oracle.ldap.rsf.ic, 11.2.0.4.0... Patching component oracle.rdbms.deconfig, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Applying sub-patch '18522509' to OH '/opt/app/11.2.0/grid' ApplySession: Optional component(s) [ oracle.precomp.common, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.rdbms.deconfig, 11.2.0.4.0... Applying sub-patch '19121551' to OH '/opt/app/11.2.0/grid' ApplySession: Optional component(s) [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.ordim.client, 11.2.0.4.0... Patching component oracle.ordim.jai, 11.2.0.4.0... Applying sub-patch '19769489' to OH '/opt/app/11.2.0/grid' ApplySession: Optional component(s) [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.ovm, 11.2.0.4.0 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.oraolap, 11.2.0.4.0 ] , [ oracle.sysman.agent, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.rdbms.util, 11.2.0.4.0... Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.xdk.parser.java, 11.2.0.4.0... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.xdk.rsf, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.4.0... Patching component oracle.rdbms.deconfig, 11.2.0.4.0... Applying sub-patch '20299013' to OH '/opt/app/11.2.0/grid' ApplySession: Optional component(s) [ oracle.rdbms.dv, 11.2.0.4.0 ] , [ oracle.rdbms.oci, 11.2.0.4.0 ] , [ oracle.precomp.common, 11.2.0.4.0 ] , [ oracle.sysman.agent, 10.2.0.4.5 ] , [ oracle.xdk, 11.2.0.4.0 ] , [ oracle.sysman.console.db, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.sysman.common, 10.2.0.4.5... Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Patching component oracle.xdk.parser.java, 11.2.0.4.0... Patching component oracle.xdk.rsf, 11.2.0.4.0... Patching component oracle.rdbms.rsf, 11.2.0.4.0... Patching component oracle.sysman.common.core, 10.2.0.4.5... Patching component oracle.rdbms.rman, 11.2.0.4.0... Patching component oracle.rdbms.deconfig, 11.2.0.4.0... Applying sub-patch '20760982' to OH '/opt/app/11.2.0/grid' ApplySession: Optional component(s) [ oracle.sysman.console.db, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.dbscripts, 11.2.0.4.0... Applying interim patch '20831122' to OH '/opt/app/11.2.0/grid' Patching component oracle.crs, 11.2.0.4.0... Composite patch 20760982 successfully applied. Patches 20299019,20831122 successfully applied. Log file location: /opt/app/11.2.0/grid/cfgtoollogs/opatch/opatch2015-10-23_16-06-35PM_1.log OPatch succeeded.7.2.2 节点1 oracle home
[oracle@jyracdb1 ~]$ $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /opt/app/media/20996923/20760982/ 输出略..7.2.3 执行rootcrs.pl -patch
su – root [root@jyracdb1 20996923]# /opt/app/11.2.0/grid/rdbms/install/rootadd_rdbms.sh [root@jyracdb1 20996923]# /opt/app/11.2.0/grid/crs/install/rootcrs.pl -patch Using configuration parameter file: /opt/app/11.2.0/grid/crs/install/crsconfig_params Installing Trace File Analyzer CRS-4123: Oracle High Availability Services has been started.7.3 然后在节点2重复以上节点1操作
su – oracle [oracle@jyracdb2 ~]$ $ORACLE_HOME/bin/srvctl stop database –d 或者: [oracle@jyracdb2 ~]$ $ORACLE_HOME/bin/srvctl stop instance -d racdb -i racdb2 su – root # $GRID_HOME/crs/install/rootcrs.pl -unlock 节点2补丁文件解压到/tmp下了,当然,如果配置共享的NFS等服务,就不必在节点2再解压补丁文件了。 [grid@jyracdb2 ~]$ $GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local /tmp/20996923/ [oracle@jyracdb2 ~]$ $ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /tmp/20996923/20760982/ 执行rootcrs.pl -patch su – root [root@jyracdb2 ~]# /opt/app/11.2.0/grid/rdbms/install/rootadd_rdbms.sh [root@jyracdb2 ~]# /opt/app/11.2.0/grid/crs/install/rootcrs.pl -patch8. 登录数据库执行升级字典操作
由于RAC实际只有一个数据库,因此任意节点登录数据库执行1次即可。最后重启数据库。
cd $ORACLE_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> STARTUP SQL> @catbundle.sql psu apply SQL> QUIT cd $ORACLE_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> @utlrp.sql SQL> shutdown immediate; SQL> startup;9. 验证补丁更新结果
各节点的GI HOME和ORACLE HOME都执行验证。
$ cd $ORACLE_HOME/OPatch $ ./opatch lsinventory
数据库的验证。
SQL> select * from dba_registry_history;
: