Upgrade Oracle RAC to 11.2.0.3 from 11.2.0.1 on Linux
1 系统升级环境
2 升级前准备
3 安装OPATCH工具和PSU
4 升级GI/CRS到11.2.0.3
5 升级RDBMS到 11.2.0.3
6 升级DB
7 验证
产品名称 |
产品描述 |
数量 |
服务器节点 |
Cpu: Intel(R) Xeon(R) CPU E7- 4830 @ 2.13GHz memory:8G Core:4 Swap:6G |
2 |
共享存储 |
一块214G scsi硬盘 |
1 |
分类 |
项目 |
说明 |
备注 |
主机 |
主机名 |
S01,s02 |
|
操作系统 |
Red hat as 5 |
5.8 |
|
内核 |
2.6.18-308.el5 |
x86_64 |
|
数据库
|
数据库版本 |
Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 |
|
运行模式 |
RAC |
|
|
数据库名 |
test |
|
|
实例名 |
Test1,test2 |
|
|
ASM |
+DATA,+FLASH,+OCR_VOTE |
|
存储 |
||||
组件 |
文件系统 |
卷大小 |
ASM卷组名 |
ASM冗余 |
OCR-VOTE |
ASM |
3G |
+OCR_VOTE |
NOMAL |
数据库文件 |
ASM |
110G |
+DATA |
EXTERNAL |
恢复区 |
ASM |
110G |
+FLASH |
EXTERNAL |
网络配置 |
|||||
节点 |
公共IP |
私有IP |
虚拟IP |
scan名称 |
SCAN IP |
S01 |
172.31.2.36 |
192.168.0.2 |
172.31.2.251 |
s-scan |
172.31.2.253 |
S02 |
172.31.2.62 |
192.168.0.3 |
172.31.2.63 |
名称 |
升级前 |
升级后 |
GRID_BASE |
/app/grid |
/app/grid |
GRID_HOME |
/app/11.2.0/grid |
/app/11.2.0.3/grid |
ORACLE_BASE |
/app/oracle |
/app/oracle |
ORACLE_HOME |
/app/oracle/product/11.2.0/db_1 |
/app/oracle/product/11.2.0.3/db_1 |
在所有节点上安装OPTATCH工具,安装此工具时不需要停止什么服务和进程。
首先用GRID用户移动备份原有的OPTATCH目录
[root@s01 ~]#su – grid
[grid@s01 ~]$mv $GRID_HOME/OPatch $GRID_HOME/OPatch_bak
然后,将下载的OPATCH介质解压到$GRID_HOME下,即可
[grid@s01 ~]$unzip /app/soft/p6880880_112000_Linux-x86-64.zip -d $CRS_HOME
注:Patch 6880880: OPatch 11.2 (patchid:6880880),是最新的opatch工具;
需要节点2上做以上操作。
1)切换到GRID用户,查询以前安装的补丁
[root@s01 ~]#su – grid
[root@s01 ~]#su – grid
[grid@s01 ~]$/app/11.2.0/grid/OPatch/opatch lsinventory -detail -oh $GRID_HOME
2)解压相应的PSU补丁
[grid@s01 ~]$unzip /app/soft/p9413827_112010_Linux-x86-64.zip
3)切换到ORACLE用户有,停止本地节点的相关DB HOME相关资源
[root@s01 ~]#su – oracle
[oracle@s01 ~]$srvctl stop home -o $ORACLE_HOME -n s01 -s stop_db_res
参考语法:
srvctl stop home -o [RDBMS_HOME] –n [node_name] -s [status file location]
4) ROOT用户执行rootcrs.pl -unlock命令
[root@s01 ~]# $GRID_HOME/crs/install/rootcrs.pl -unlock
5) ORACLE用户执行patch目录下的prepatch.sh脚本
[root@s01 ~]#su – oracle
[oracle@s01 ~]$cd /app/soft/
[oracle@s01 /app/soft/]$ 9413827/custom/server/9413827/custom/
scripts/prepatch.sh -dbhome $ORACLE_HOME
6)实际apply patch
grid用户执行以下命令
[root@s01 ~]#su - grid
[grid@s01 ]$cd /app/soft/9413827/
[grid@s01 ]$opatch napply -local -oh $GRID_HOME -id 9413827
oracle用户执行以下命令
[root@s01 ~]#su - oracle
[oracle@s01 ~]$cd /app/soft/9413827/
[oracle@s01 9413827]opatch napply custom/server/ -local -oh $ORACLE_HOME -id 9413827
7)配置HOME目录
以root用户执行以下命令
[root@s01 ~]#chmod +w $GRID_HOME/log/[nodename]/agent
[root@s01 ~]#chmod +w $GRID_HOME/log/[nodename]/agent/crsd
以ORACLE用户执行以下命令
[root@s01 ~]#su - oracle
[oracle@s01 ~]$cd /app/soft/9413827/
[oracle@s019413827]$ custom/server/9413827/custom/scripts/postpatch.sh –dbhome $ORACLE_HOME
8)以root用户重启CRS进程
[root@s01 ~]#$GRID_HOME/crs/install/rootcrs.pl -patch
[root@s01 ~]# $ORACLE_HOME/bin/srvctl start home -o $ORACLE_HOME -s $STATUS_FILE -n nodename
9)验证补丁安装成功
[grid@s01 ~]opatch lsinventory -detail -oh $GRID_HOME
[oracle@s01 ~]opatch lsinventory -detail -oh $ORACLE_HOME
注:以上步聚需要两节点操作,最好一节点操作成功后再操作另一节点。
为保证万无一失,在升级前最好对数据库做一次全备,并验证其有效性。
分别在两节点上创建目录,并配置相应的属组和权限。
[root@s01 ~]#mkdir –p /app/oracle/product/11.2.0/db_1
[root@s01 ~]#mkdir –p /app/11.2.0.3/grid
[root@s01 ~]#chown –R grid:oinstall /app/11.2.0.3/grid
[root@s01 ~]#chown –R oracle:oinstall /app/oracle/product/11.2.0/db_1
[root@s01 ~]#chmod –R 755/app/11.2.0.3/grid
[root@s01 ~]#chmod –R 755 /app/oracle/product/11.2.0/db_1
[grid@s01 ~]unzip p10404530_112030_Linux-x86-64_3of7.zip
[grid@s01 ~]$./runcluvfy.sh stage -pre crsinst -upgrade -n all -rolling -src_crshome /app/11.2.0/grid -dest_crshome /app/11.2.0.3/grid -dest_version 11.2.0.3.0
确定可以满足升级需求时,往下进行安装
以GRID用户启动GI/CRS的OUI安装界面
[grid@s01 ~]$unset GRID_HOME GRID_BASE ORACLE_SID
[grid@s01 ~]$ cd /app/patch/grid
[grid@s01 ~]$ ./runInstaller
1)选择skip software updates,并下一步
2 )选择update oracle grid,并下一步
3 ) 选择ENGLISH,并下一步
4)确认信息后下一步
5)确认信息后并下一步
6)填写新的GRID_HOME,并下一步
7 )确认可以满足需求时,下一步
8 )分别在两个节点上按序执行下列脚本
[root@s01 ~]#/app/11.2.0.3/grid/rootupdate.sh
[root@s02 ~]#/app/11.2.0.3/grid/rootupdate.sh
注:在正式执行rootupgrade.sh之前数据库服务在所有节点上都是可用的,而在执行rootupgrade.sh脚本期间,本地节点的CRS将短暂关闭,其它节点正常使用;
为解决 unpublished bug 10011084 and unpublished bug 10128494,在两节点执行rootupgrade.sh之前,需要修改crsconfig_lib.pm参数文件,修改方式如下:
[root@s01 ~]#cp $NEW_CRS_HOME/crs/install/crsconfig_lib.pm
$NEW_CRS_HOME/crs/install/crsconfig_lib.pm.bak
[root@s01 ~]#vi $NEW_CRS_HOME/crs/install/crsconfig_lib.pm
@cmdout = grep(/$bugid/, @output);
修改为:
@cmdout = grep(/(9655006|9413827)/, @output);
@exp_func = qw(check_CRSConfig validate_olrconfig validateOCR
修改为:
@exp_func = qw(check_CRSConfig validate_olrconfig validateOCR read_file
[root@s01 ~]#su – grid
[root@s01 ~]$crsctl query crs activeversion
注:更新bash_profile , 将GRID_HOME、ORACLE_HOME、PATH等变量指向新的目录
以oracle用户启动GI/CRS的OUI安装界面
[oralce@s01 ~]$unset ORACLE_HOME ORACLE_BASE ORACLE_SID
[oracle@s01 ~]$cd /app/patch/database
[oracle@s01 ~]$ ./runInstaller
1) 可根据情况填写,并下一步
2)选择skip software update,并下一步
3)选择upgrade an existing database,并下一步
4 )确认信息后下一步
5)语言推荐选择English,并下一步
6)选择企业版,并下一步
7)填写、核实新的ORACLE_BASE,ORACLE_HOME,并下一步
8)核实OS权利组,并下一步
9)下一步
10)下一步
11)下一步
12)两节点上分别执行下列脚本
[root@s01 ~]# /app/oracle/product/11.2.0.3/db_1/root.sh
[root@s02 ~]# /app/oracle/product/11.2.0.3/db_1/root.sh
在最后一个节点执行以上脚本后,会以OUI形式DBUA
1)下一步
2)下一步
3)选择第一项后,并下一步
4)选择快速恢复区位置和大小,并一下步
5 )RDBMS升级完毕
[root@s01 ~]#su – oracle
[oracle@s01 ~]#sqlplus / as sysdba
检查对象的有效性
Select * from dba_invalid_objects;
检查各组件版本号及其状态
SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRYSELECT