之前总结过《》,
这次整理为简明版,忽略一切输出的显示,引入一些官方的说明,增加OJVM PSU的补丁应用。
环境:RHEL6.5 + Oracle 11.2.0.4 RAC(4 nodes)
本次需求:应用最新的PSU,OJVM PSU补丁。
目前最新发布(2016-07-19)的PSU,OJVM PSU补丁文件分别为:
p23274134_112040_Linux-x86-64.zip
p23177551_112040_Linux-x86-64.zip
- 1.检查OPatch版本
- 2.解压补丁文件
- 3.确认已停止OEM
- 4.本次PSU补丁说明
- 5.手动应用补丁
- 6.数据库应用PSU
- 7.应用OJVM PSU
- 8.应用补丁结果
需要跟踪对应补丁的README说明,确定当前环境的OPatch版本符合要求,如果不符合要求,需要下载符合要求的OPatch版本。
1.1 查询OPatch版本$ORACLE_HOME/OPatch/opatch version
1.2 替换为新版本OPatch备份原来的OPatch,解压/tmp下的新版本OPatch到$ORACLE_HOME下,检查OPatch的版本:
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak && cd /tmp && unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch version
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
解压补丁文件:赋权确定解压的目录/usr2有对应权限,然后解压补丁文件
root:
chown oracle:oinstall /usr2 && chmod 775 /usr2 && mv /tmp/p23274134_112040_Linux-x86-64.zip /usr2/
grid:
cd /usr2 && unzip p23274134_112040_Linux-x86-64.zip
Stop EM Agent Processes Prior to Patching and Prior to Rolling Back the Patch
查看em运行状态:
$ORACLE_HOME/bin/emctl status dbconsole
如果状态是运行,则需要关闭:
$ORACLE_HOME/bin/emctl stop dbconsole
一般是在Oracle用户登录1节点 停止em。
23054359
DB PSU 11.2.0.4.160719 (INCLUDES CPUJUL2016)
Both DB Homes and Grid Home
23054319
OCW PSU 11.2.0.4.160719
Both DB Homes and Grid Home
22502505
ACFS PSU 11.2.0.4.160419
Only Grid Home
Manual Steps for Apply/Rollback Patch
See My Oracle Support Document 1641136.1 for cases where opatch auto cannot be used.
文档第5部分
5 Manual Steps for Apply/Rollback Patch
--1.Stop the CRS managed resources running from DB homes. If this is a GI Home environment, as the database home owner execute:
$ /bin/srvctl stop home -o -s -n
$ORACLE_HOME/bin/srvctl stop home -o $ORACLE_HOME -s /tmp/stophome.log -n xxx01
实际这一步没成功,也没看出对应用补丁什么影响.
--2.Run the pre root script. If this is a GI Home, as the root user execute:
# /crs/install/rootcrs.pl -unlock
停止节点1的服务
su - root
$GRID_HOME/crs/install/rootcrs.pl -unlock
--3.Apply the CRS patch using. As the GI home owner execute:
$ /OPatch/opatch napply -oh -local // As the GI home owner execute: $ /OPatch/opatch napply -oh -local // As the GI home owner execute: $ /OPatch/opatch apply -oh -local //
grid用户登录,打对应补丁:
su - grid $GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local /usr2/23274134/23054319 $GRID_HOME/OPatch/opatch napply -oh $GRID_HOME -local /usr2/23274134/22502505 $GRID_HOME/OPatch/opatch apply -oh $GRID_HOME -local /usr2/23274134/230543595.4 补丁安装前执行脚本
--4.Run the pre script for DB component of the patch. As the database home owner execute:
$ ///custom/server//custom/scripts/prepatch.sh -dbhome
Oracle用户登录,补丁安装前检查:
su - oracle $ /usr2/23274134/23054319/custom/server/23054319/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME5.5 应用DB补丁
--5.Apply the DB patch. As the database home owner execute:
$ /OPatch/opatch napply -oh -local ///custom/server/ $ /OPatch/opatch apply -oh -local //
oracle用户登录,打对应补丁:
$ORACLE_HOME/OPatch/opatch napply -oh $ORACLE_HOME -local /usr2/23274134/23054319/custom/server/23054319 $ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local /usr2/23274134/230543595.6 补丁安装后执行脚本
--6.Run the post script for DB component of the patch. As the database home owner execute:
$ ///custom/server//custom/scripts/postpatch.sh -dbhome
oracle用户登录,补丁修复完确定:
$ /usr2/23274134/23054319/custom/server/23054319/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME5.7 root用户执行脚本
--7.Run the post script. As the root user execute:
# /rdbms/install/rootadd_rdbms.sh If this is a GI Home, as the root user execute: # /crs/install/rootcrs.pl -patch If this is an Oracle Restart Home, as the root user execute: # /crs/install/roothas.pl -patch
root用户登录,执行脚本:
su - root # $GRID_HOME/rdbms/install/rootadd_rdbms.sh # $GRID_HOME/crs/install/rootcrs.pl -patch5.8 可能的报错
--8.If the message, "A system reboot is recommended before using ACFS??? is shown, then a reboot must be issued before continuing. Failure to do so will result in running with an unpatched ACFSADVMOKS driver.
5.9 呼应5.1步骤,这里也没做--9.Start the CRS managed resources that were earlier running from DB homes. If this is a GI Home environment, as the database home owner execute:
$ /bin/srvctl start home -o -s -n
If this is an Oracle Restart Home environment, as the database home owner execute:
$ /bin/srvctl start home -o -s
srvctl stop database -d lrnop
6.2 根据下面文档的内容操作2.5.2 Loading Modified SQL Files into the Database The following steps load modified SQL files into the database. For an Oracle RAC environment, perform these steps on only one node. For each database instance running on the Oracle home being patched, connect to the database using SQL*Plus. Connect as SYSDBA and run the catbundle.sql script as follows: cd $ORACLE_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> STARTUP SQL> @catbundle.sql psu apply SQL> QUIT The catbundle.sql execution is reflected in the dba_registry_history view by a row associated with bundle series PSU. For information about the catbundle.sql script, see My Oracle Support Document 605795.1 Introduction to Oracle Database catbundle.sql. If the OJVM PSU was applied for a previous GI PSU patch, you may see invalid Java classes after execution of the catbundle.sql script in the previous step. If this is the case, run utlrp.sql to re-validate these Java classes. cd $ORACLE_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> @utlrp.sql Check the following log files in $ORACLE_BASE/cfgtoollogs/catbundle for any errors: catbundle_PSU__APPLY_.log catbundle_PSU__GENERATE_.log where TIMESTAMP is of the form YYYYMMMDD_HH_MM_SS. If there are errors, see Section 3, "Known Issues". This patch now includes the OJVM Mitigation patch (Patch:19721304). If an OJVM PSU is installed or planned to be installed, no further actions are necessary. Otherwise, the workaround of using the OJVM Mitigation patch can be activated. As SYSDBA do the following from the admin directory: SQL > @dbmsjdev.sql SQL > exec dbms_java_dev.disable For more information on the OJVM mitigation patch, see Document 1929745.1 Oracle Recommended Patches -- "Oracle JavaVM Component Database PSU" (OJVM PSU) Patches. 2.5.3 Upgrade Oracle Recovery Manager Catalog If you are using the Oracle Recovery Manager, the catalog needs to be upgraded. Enter the following command to upgrade it: $ rman catalog username/password@alias RMAN> UPGRADE CATALOG;7.应用OJVM PSU 7.1 打OJVM PSU
p23177551_112040_Linux-x86-64.zip
7.2 应用OJVM PSUsu - oracle cp /tmp/p23177551_112040_Linux-x86-64.zip /usr2 && cd /usr2 && unzip p23177551_112040_Linux-x86-64.zip $ cd /23177551 $ opatch prereq CheckConflictAgainstOHWithDetail -ph ./ cd /usr2/23177551 && opatch apply7.3 数据库应用OJVM PSU
--1.For an Oracle RAC environment, reload the packages on one of the nodes using the following commands. Make sure no other instance of the database is up on the remote nodes. cd $ORACLE_HOME/sqlpatch/23177551 sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> STARTUP SQL> alter system set cluster_database=false scope=spfile; SQL> SHUTDOWN SQL> STARTUP UPGRADE SQL> @postinstall.sql SQL> alter system set cluster_database=true scope=spfile; SQL> SHUTDOWN SQL> STARTUP --2.After installing the SQL portion of the patch, some packages could become INVALID. This will get recompiled upon access or you can run utlrp.sql to get them back into a VALID state. cd $ORACLE_HOME/rdbms/admin sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> @utlrp.sql8.应用补丁结果
最终验证应用补丁的结果:
各节点的$GRID_HOME,$ORACLE_HOME,都可以使用opatch lspatches查看补丁应用的情况:
[root@db02 tmp]# su - grid [grid@db02 ~]$ $ORACLE_HOME/OPatch/opatch lspatches 23054359;Database Patch Set Update : 11.2.0.4.160719 (23054359) 22502505;ACFS Patch Set Update : 11.2.0.4.160419 (22502505) 23054319;OCW Patch Set Update : 11.2.0.4.160719 (23054319) OPatch succeeded. [grid@db02 ~]$ exit logout [root@db02 tmp]# su - oracle [oracle@lrnopdb02 ~]$ $ORACLE_HOME/OPatch/opatch lspatches 23177551;OJVM PATCH SET UPDATE 11.2.0.4.160719 23054359;Database Patch Set Update : 11.2.0.4.160719 (23054359) 23054319;OCW Patch Set Update : 11.2.0.4.160719 (23054319) OPatch succeeded. [oracle@db02 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 18 17:39:41 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> set linesize 1000 SQL> select * from dba_registry_history; ACTION_TIME ACTION NAMESPACE VERSION ID BUNDLE_SERIES COMMENTS --------------------------------------------------------------------------- ------------------------------ ------------------------------ ------------------------------ ---------- ------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 24-AUG-13 12.03.45.119862 PM APPLY SERVER 11.2.0.4 0 PSU Patchset 11.2.0.2.0 28-JUN-16 12.36.13.876461 PM APPLY SERVER 11.2.0.4 0 PSU Patchset 11.2.0.2.0 18-AUG-16 03.49.29.881506 PM APPLY SERVER 11.2.0.4 160719 PSU PSU 11.2.0.4.160719 18-AUG-16 05.20.06.098533 PM jvmpsu.sql SERVER 11.2.0.4.160719OJVMPSU 0 RAN jvmpsu.sql 18-AUG-16 05.20.06.213324 PM APPLY SERVER 11.2.0.4.160719OJVMPSU 0 OJVM PSU post-install 18-AUG-16 05.20.06.245501 PM APPLY 23177551 Patch 23177551 applied 6 rows selected. SQL> select count(1) from gv$instance; COUNT(1) ---------- 4 SQL>
至此,Oracle 11g RAC 应用补丁简明版整个过程的示例完毕。
: