Oracle 10g R2 RAC手动打补丁PSU(10.2.0.5.19) 一、准备工作 1,数据库环境
操作系统版本 : RedHat 5.8 x64
数据库版本 : Oracle 10.2.0.5 x64 RAC
Cluterware : 10.2.0.5
Oracle database: 10.2.0.5.0
PSU补丁 : 10.2.0.5.19 (2015年下半年)
OPatch : p6880880_102000_Linux-x86-64.zip
DB PSU : p20299014_10205_Linux-x86-64.zip
说明:p20299014补丁包无CRS的补丁修复,所以直接打数据库PSU即可。
二、更新OPatch版本,必须要更新说明:分别在两个节点更新OPatch版本。
1. 更新OPatch版本,需要从10.2.0.4.9更新到10.2.0.5.1,OPatch直接压缩替换就可以了。(1) 上传p6880880_112000_Linux-x86-64.zip,p20299014_10205_Linux-x86-64.zip到/u01/app目录下。
(2) root用户下将原OPatch目录改名。
mv /u01/app/oracle/product/10.2.0/db_1/OPatch /u01/app/oracle/product/10.2.0/db_1/OPatchBK
2. oracle目录OPatch替换(1) root用户
cd /u01/app/
chown oracle:oinstall p6880880_102000_Linux-x86-64.zip
chown oracle:oinstall p20299014_10205_Linux-x86-64.zip
(2) oracle用户
su - oracle
cd /u01/app/
unzip p6880880_112000_Linux-x86-64.zip
unzip p20299014_10205_Linux-x86-64.zip
(3) root用户
cd /u01/app/
mv OPatch /u01/app/oracle/product/10.2.0/db_1/
(4) oracle用户测试
su - oracle
/u01/app/oracle/product/10.2.0/db_1/OPatch/opatch version
Invoking OPatch 10.2.0.5.1
OPatch Version: 10.2.0.5.1
su - oracle
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/app/20299014 -oh $ORACLE_HOME
Invoking OPatch 10.2.0.5.1
Oracle Interim Patch Installer version 10.2.0.5.1
Copyright (c) 2010, Oracle Corporation. All rights reserved.
PREREQ session
Oracle Home : /u01/app/oracle/product/10.2.0/db_1
Central Inventory : /u01/app/oracle/oraInventory
from : /etc/oraInst.loc
OPatch version : 10.2.0.5.1
OUI version : 10.2.0.5.0
OUI location : /u01/app/oracle/product/10.2.0/db_1/oui
Log file location : /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch2016-03-29_10-38-44AM.log
Patch history file: /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt
Invoking prereq "checkconflictagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.
采用这种方法对应用系统没有影响的,升级一个节点的同时,其他节点不需要停机.
$ /u01/app/oracle/product/10.2.0/db_1/OPatch/opatch query -all /u01/app/20299014/ |grep rolling
Patch is a rolling patch: true
升级看各自的环境,可以有用滚动升级的方式,也可以采用全关闭了再升级。
1. 先升级节点1,关闭节点1[oracle@node1 ~]$ srvctl stop instance -d orcl -i orcl1
[oracle@node1 ~]$ srvctl stop listener -n node1
[oracle@node1 ~]$ srvctl stop asm -n node1
本地升级方式:
cd /u01/app/
/u01/app/oracle/product/10.2.0/db_1/OPatch/opatch napply -local -oh /u01/app/oracle/product/10.2.0/db_1 -id 20299014
例:如果不采用滚动升级的话,本地与远程一起打的方式:
cd /u01/app/20299014
/u01/app/oracle/product/10.2.0/db_1/OPatch/opatch apply
先打本地节点,启动节点1数据库,再关闭节点2,再打节点2补丁,最后启动节点2。
3. 节点1启动。[oracle@node1 ~]$ srvctl start asm -n node1
[oracle@node1 ~]$ srvctl start instance -d orcl -i orcl1
[oracle@node1 ~]$ srvctl start listener -n node1
[oracle@node2 ~]$ srvctl stop instance -d orcl -i orcl2
[oracle@node2 ~]$ srvctl stop listener -n node2
[oracle@node2 ~]$ srvctl stop asm -n node2
继续打节点2补丁,完毕后,再启动节点2.
[oracle@node2 ~]$ srvctl start asm -n node2
[oracle@node2 ~]$ srvctl start instance -d orcl -i orcl2
[oracle@node2 ~]$ srvctl start listener -n node2