一、准备工作
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年下半年)
2,准备内容
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
3. 测试兼容性
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.
4. 查看该补丁能否采用rolling方式升级
采用这种方法对应用系统没有影响的,升级一个节点的同时,其他节点不需要停机.
$ /u01/app/oracle/product/10.2.0/db_1/OPatch/opatch query -all /u01/app/20299014/ |grep rolling
Patch is a rolling patch: true
三、打database PSU补丁
升级看各自的环境,可以有用滚动升级的方式,也可以采用全关闭了再升级。
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
2. 执行升级
本地升级方式:
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
4. 关闭节点2
[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
5. 节点1,节点2检查升级情况
$ /u01/app/oracle/product/10.2.0/db_1/OPatch/opatch lsinv
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.
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_16-10-36PM.log
Patch history file: /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt
Lsinventory Output file location : /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2016-03-29_16-10-36PM.txt
--------------------------------------------------------------------------------
Installed Top-level Products (2):
Oracle Database 10g 10.2.0.1.0
Oracle Database 10g Release 2 Patch Set 4 10.2.0.5.0
There are 2 products installed in this Oracle Home.
Interim patches (1) :
Patch 20299014 : applied on Tue Mar 29 16:03:40 CST 2016
Unique Patch ID: 19074368
Created on 24 Jun 2015, 02:35:37 hrs PST8PDT
Bugs fixed:
20074391, 13596521, 17088068, 8865718, 17201047, 13489660, 9020537
8664189, 10091698, 14275629, 19909862, 17832122, 17832123, 17832124
17832125, 16619894, 8822531, 10139235, 20299014, 8350262, 7119382
19274521, 13632738, 11724962, 20331945, 19274523, 9320130, 16961614
16961615, 13775862, 16961616, 16961617, 19006757, 16961618, 16961619
18221699, 9399589, 14841459, 9672816, 9499302, 20299021, 9659614, 13632743
9949948, 14220725, 8882576, 7612454, 7111619, 9711859, 9714832, 12780098
13561951, 14665116, 11066597, 16703112, 19231857, 17721717, 9713537
14459552, 19458377, 13737773, 13737775, 16212405, 18096714, 16338983
14390396, 10249537, 19006849, 7115910, 8354642, 7602341, 14076510
12565867, 15987029, 16462834, 18641419, 11693109, 14023636, 9024850
8394351, 8224558, 17082365, 14149782, 9109487, 14841558, 9171933
10173237, 16817117, 10068982, 10306945, 8666117, 11725006, 10214450
14205448, 17082371, 9767674, 16306019, 9323583, 9726739, 16279211
8412426, 10326338, 10165083, 6651220, 9145204, 13554409, 11076894
19854436, 11893577, 17865671, 16746190, 14492313, 14492314, 11814891
14492315, 14492316, 16742123, 21048089, 16864562, 14546638, 12419258
16056270, 10010310, 18139709, 9689310, 9390484, 21048090, 21048091
9963497, 12551700, 16362358, 12551701, 17465584, 12551702, 12551703
12551704, 10076669, 12551705, 16270946, 12551706, 12551707, 6076890
9308296, 12551708, 14258925, 12880299, 17381900, 18641451, 17381901
17381902, 11790175, 12796518, 9772888, 8650138, 17056813, 14469008
12551710, 10092858, 7519406, 9821321, 8771916, 13349665, 7509714
10159846, 13257247, 18031728, 18641461, 16372203, 11792865, 19007266
19309466, 16309604, 16309605, 16309606, 18522511, 8966823, 11674645
17551414, 15877957, 15877958, 7026523, 15877959, 17716305, 13503598
18767250, 9150282, 9448311, 10327179, 14774730, 19153980, 9735237
9952230, 15877960, 15877961, 15877962, 15877963, 8660422, 18221700
18221701, 16279401, 14546673, 14105702, 14105703, 14105704, 13483152
14269955, 17285560, 12925532, 12748240, 9694101, 12862186, 12862187
14727319, 8211733, 9586877, 9548269, 6694396, 7710224, 9337325, 11856395
10157402, 15950541, 19699191, 6402302, 10327190, 10269717, 13015379
10017048, 8546356, 13561750, 8821114, 9770451, 9360157, 8488233, 10132870
4180770, 9532911, 7361418, 6157713, 9184754, 8544696, 17850678, 8277300
13343467, 16382448, 13791364, 12419392, 10208905, 20236416, 20236417
20236418, 20236419, 7450366, 8970313, 6690853, 6011045, 10162036, 10248542
9469117, 13359623, 9952270, 13343471, 9842573, 17381899, 12710774
20558005, 10324526, 9322219, 8636407, 12828105, 19289642, 13736501
9824435, 13736502, 18681879, 13736503, 13736504, 13736505, 13736506
9032322, 13736507, 14035825, 19769505, 11858315, 14040433, 13916709
12827745, 14038805, 19567242, 16721594, 13923855, 19567243, 8528171
9072105, 19567244, 11737047
Rac system comprising of multiple nodes
Local node = node1
Remote node = node2
--------------------------------------------------------------------------------
OPatch succeeded.
四、升级数据库数据字典
1,数据库启动,数据库已经启动的情况下,不需要再启动数据库,直接执行脚本即可。
$ sqlplus / as sysdba
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> @utlrp.sql
SQL>
2. 执行完后我们可以查到PSU更新信息:
set line 150
col ACTION_TIME for a30
col ACTION for a10
col NAMESPACE for a8
col VERSION for a18
col BUNDLE_SERIES for a5
col COMMENTS for a20
select * from dba_registry_history;
ACTION_TIME ACTION NAMESPAC VERSION ID BUNDL COMMENTS
------------------------------ ---------- -------- ------------------ ---------- ----- --------------------
29-MAR-16 04.15.04.729398 PM jvmpsu.sql SERVER 10.2.0.5.2OJVMBP 0 RAN jvmpsu.sql
29-MAR-16 04.15.52.723026 PM jvmpsu.sql SERVER 10.2.0.5.2OJVMBP 0 RAN jvmpsu.sql
29-MAR-16 04.24.14.043257 PM APPLY SERVER 10.2.0.5 19 PSU PSU 10.2.0.5.19
3 rows selected.
SQL>