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

