rac upgrade;from 11.2.0.1 to 11.2.0.3
总结:
1、 升级GI and ASM
1-1、升级optch version --(p6880880)
1-2、打补丁9413827 --注意:打补丁前需当前实例执行rootcrs.pl-unlock
1-3、Out of place升级GI ;先升级ASM后升级GI (./runInstaller)
1-3-1:新目录安装11.2.0.3GI软件
1-3-2:直接升级GI ;执行rootupgrade.sh 先升级ASM 后Oracle cluster
注:rootupgrade.sh执行其中一个节点成功了,另一个节点HANG住或中断这个时间可能会提示你重启,你必须先设置新的GRID环境变量
2、 升级Oracle Database
2-1、Out of place 升级OracleDatabase (./runInstaller)
2-1-1:新目录安装11.2.0.3 Database软件
2-1-2:直接升级原有的RDBMS
操作步骤
1.建立升级所需目录
--oracle用户
ORACLE_BASE=/u01/app/oracle03
ORACLE_HOME=/u01/app/oracle03/03
mkdir -p /u01/app/oracle03/03
chown oracle:oinstall /u01/app/oracle03/03 -R
chmod 775 /u01/app/oracle03/03 -R
--grid用户
export ORACLE_HOME=/u01/11.2.0.3
mkdir -p /u01/11.2.0.3
chown grid:oinstall /u01/11.2.0.3 -R
chmod 775 /u01/11.2.0.3 -R
2.检查当前oracle database、oracleclusterware状态
2-1.当前oracle database版本
BANNER
-------------------------------------------------------------------------------
OracleDatabase 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQLRelease 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNSfor Linux: Version 11.2.0.1.0 - Production
NLSRTLVersion 11.2.0.1.0 - Production
2-2.当前oracle database 组件
selectcomp_name,version,status from dba_registry;
COMP_NAME VERSION STATUS
------------------------------------------------------- --------------------
OWB 11.2.0.1.0 VALID
OracleApplication Express 3.2.1.00.10 VALID
OracleEnterprise Manager 11.2.0.1.0 VALID
OLAPCatalog 11.2.0.1.0 VALID
Spatial 11.2.0.1.0 VALID
OracleMultimedia 11.2.0.1.0 VALID
OracleXML Database 11.2.0.1.0 VALID
OracleText 11.2.0.1.0 VALID
OracleExpression Filter 11.2.0.1.0 VALID
OracleRules Manager 11.2.0.1.0 VALID
OracleWorkspace Manager 11.2.0.1.0 VALID
OracleDatabase Catalog Views 11.2.0.1.0 VALID
OracleDatabase Packages and Types 11.2.0.1.0 VALID
JServerJAVA Virtual Machine 11.2.0.1.0 VALID
OracleXDK 11.2.0.1.0 VALID
OracleDatabase Java Packages 11.2.0.1.0 VALID
OLAPAnalytic Workspace 11.2.0.1.0 VALID
OracleOLAP API 11.2.0.1.0 VALID
OracleReal Application Clusters 11.2.0.1.0 VALID
19 rowsselected.
2-3.当前oracle clusterware版本
[oracle@racdou02app]$ crsctl query crs softwareversion racdou01
OracleClusterware version on node [racdou01] is [11.2.0.1.0]
[oracle@racdou02app]$ crsctl query crs softwareversion racdou02
OracleClusterware version on node [racdou02] is [11.2.0.1.0]
[root@racdou01~]# crsctl query crs activeversion
OracleClusterware active version on the cluster is [11.2.0.1.0]
2-4.当前GI版本(grid)
select* from v$version;
BANNER
-------------------------------------------------------------------------------
OracleDatabase 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQLRelease 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNSfor Linux: Version 11.2.0.1.0 - Production
NLSRTLVersion 11.2.0.1.0 – Production
3.升级前备份
3-1.数据库备份RMAN全备(省略)
备份oracle_home,crs_home
tar -zcvfapp.tar.gz app/ --压缩
tar -zxvfapp.tar.gz --解压
3-2.检查votedisk和ocr备份
[oracle@racdou02u01]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 38c99c120ba14f72bf9639a4f409c603 (/dev/asm-data02) [DATA]
Located1 voting disk(s).
[oracle@racdou02u01]$ ocrconfig -showbackup
racdou01 2013/08/08 19:14:18 /u01/app/11.2.0/grid/cdata/dou_rac/backup00.ocr
racdou01 2013/08/08 15:14:27 /u01/app/11.2.0/grid/cdata/dou_rac/backup01.ocr
racdou01 2013/08/06 02:45:46 /u01/app/11.2.0/grid/cdata/dou_rac/backup02.ocr
racdou01 2013/08/08 15:14:27 /u01/app/11.2.0/grid/cdata/dou_rac/day.ocr
racdou01 2013/08/05 18:45:44 /u01/app/11.2.0/grid/cdata/dou_rac/week.ocr
PROT-25:Manual backups for the Oracle Cluster Registry are not available
3-4.手动备份OCR
虽然oracle可以自动备份,兜兜还是决定手动备份一份,11gr2只备份OCR就够了
在Oracle11g R2中,不必备份votingdisk, 当任何配置发生改变,voting disk
数据会自动备份在OCR中,并自动恢复到任何加入的voting disk中。
http://space.itpub.net/35489/viewspace-683852
备份OCR
[root@racdou02~]# ocrconfig -export /u01/app/11.2.0/grid/cdata/dou_rac/manual.ocr
恢复OCR
[root@racdou02~]#ocrconfig -restore/u01/app/11.2.0/grid/cdata/dou_rac/manual.ocr
备份asmdiskheader
selectpath from v$asm_disk;
[grid@racdou02dou_rac]$ kfed read /dev/asm-data01 text=/u01/asm-data01-disker
恢复amdiskheader
[grid@racdou02dou_rac]$ kfed merge /dev/asm-data01 text=/u01/asm-data01-disker
以上备份完毕
4.升级前检验(是否满足升级条件)
[grid@racdou01grid]$ ./runcluvfy.sh stage -pre crsinst -upgrade -n racdou01,racdou02-rolling -src_crshome $ORACLE_HOME -dest_crshome $ORACLE_HOME -dest_version11.2.0.3.0 -fixup -fixupdir /tmp -verbose
总结一下检查失败的部分与解决方案
正在检查主机配置文件...
节点名 状态 注释
------------ ------------------------ ------------------------
racdou02 失败 条目无效
racdou01 失败 条目无效
ERROR:
PRVF-4190 : 主机配置文件的验证失败
注释掉::1 成#::1
检查: "racdou02:/u01/app/11.2.0/grid,racdou02:/u01/tmp"的 空闲磁盘空间
路径 节点名 装载点 可用 必需 状态
---------------- ------------ ------------ ------------ ------------ ------------
/u01/app/11.2.0/grid racdou02 / 4.5635GB 7.5GB 失败
/u01/tmp racdou02 / 4.5635GB 7.5GB 失败
解决方案:
Node 2:grid用户环境变量中添加一行export tmpdir=/opt
正在检查主目录"/u01/app/11.2.0/grid" 中的 Oracle 补丁程序 "9413827"。
节点名 已应用 必需 注释
------------ ------------------------ ------------------------ ----------
racdou02 缺失 9413827 失败
racdou01 缺失 9413827 失败
此补丁程序所解决的Bug
9413827
11201TO 11202 ASM ROLLING UPGRADE - OLD CRS STACK FAILS TO STOP
apply 9413827 patch 11.2.0.1 升级11.2.0.3前oracle推荐使用9413827 patch
1、checkpatch 9413827、opatchversion
su - grid
$CRS_HOME/OPatch/opatchlsinventory
su - oracle
$ORACLE_HOME/OPatch/opatchlsinventory
su - grid
$CRS_HOME/OPatch/opatchversion
su - oracle
$ORACLE_HOME/OPatch/opatchversion
2、installationp6880880_112000_LINUX.zip, upgrade opatch version(to 11.2.0.3.4 from 11.1.0.6.6)
su - root
cd $CRS_HOME
mv OPatch/ OPatch_bk
unzipp6880880_112000_LINUX.zip -d $CRS_HOME
chown grid:oinstallOPatch -R
$CRS_HOME/OPatch/opatchversion
3、installationp9413827_112010_LINUX.zip (需要停止升级GI节点上的实例)
su–root
unzipp9413827_112010_LINUX.zip -d $CRS_HOME
chown grid:oinstall9413827 -R
su–oracle
sh/u01/app/11.2.0/grid/9413827/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
su–root
/u01/app/11.2.0/grid/crs/install/rootcrs.pl-unlock
su–grid
first applying patchfor grid;
cd $CRS_HOME
$CRS_HOME/OPatch/opatchnapply -local -oh /u01/app/11.2.0/grid -id 9413827
$CRS_HOME/OPatch/opatchlsinventory
the for database;
su - oracle
$ORACLE_HOME/OPatch/opatchnapply /u01/app/11.2.0/grid/9413827/custom/server/ -local -oh $ORACLE_HOME -id9413827
$ORACLE_HOME/OPatch/opatchlsinventory
su – root
chmod +w/u01/app/11.2.0/grid/log/dou_rac1/agent/
chmod +w/u01/app/11.2.0/grid/log/dou_rac1/agent/crsd/
su–oracle
sh/u01/app/11.2.0/grid/9413827/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME
su–root
/u01/app/11.2.0/grid/crs/install/rootcrs.pl-patch
same setups of othersnode;
GI and Oraclesoftware patch succeed !
分别以oracle grid用户验证安装是否成功!
[grid@racdou01~]$ $ORACLE_HOME/OPatch/opatch lsinventory -oh $ORACLE_HOME
[oracle@racdou01 ~]$$ORACLE_HOME/OPatch/opatch lsinventory -oh $ORACLE_HOME
Bugsfixed:
9413827, 9706490
简要证明这补丁已经安装成功!
检查:"shmall" 的 内核参数
节点名 当前值 已配置 必需 状态 注释
---------------- ------------ ------------ ------------ ------------ ------------
racdou02 524288 524288 2097152 失败 当前值太低。 配置的值太低。
racdou01 524288 524288 2097152 失败 当前值太低。 配置的值太低。
结果:"shmall"的 内核参数 检查失败
解决方案:
vi /etc/sysctl.conf
shmall=2097152 通过验证
检查:"cvuqdisk" 的 包存在性
节点名 可用 必需 状态
------------ ------------------------ ------------------------ ----------
racdou02 cvuqdisk-1.0.7-1 cvuqdisk-1.0.9-1 失败
racdou01 cvuqdisk-1.0.7-1 cvuqdisk-1.0.9-1 失败
结果:"cvuqdisk"的 包存在性 检查失败
解决方案:/u01/tmp/CVU_11.2.0.3.0_grid/runfixup.sh (all nodes)
5.升级GI
unsetORACLE_BASE
unsetORACLE_SID
exportDISPLAY=192.168.1.25:0.0
./runInstaller
rootupgrade.sh执行前,修改crsconfig_lib.pm
cp$NEW_CRS_HOME/crs/install/crsconfig_lib.pm$NEW_CRS_HOME/crs/install/crsconfig_lib.pm.bak
vi $NEW_CRS_HOME/crs/install/crsconfig_lib.pm
从以上配置文件中修改如下行,并使用diff命令确认
From
@cmdout = grep(/$bugid/, @output);
To
@cmdout = grep(/(9655006|9413827)/, @output);
From
my @exp_func =qw(check_CRSConfig validate_olrconfig validateOCR
To
my @exp_func = qw(check_CRSConfigvalidate_olrconfig validateOCR read_file
$ diffcrsconfig_lib.pm.orig crsconfig_lib.pm
699c699
< my @exp_func =qw(check_CRSConfig validate_olrconfig validateOCR --- >
my @exp_func =qw(check_CRSConfig validate_olrconfig validateOCR read_file
13277c13277
< @cmdout =grep(/$bugid/, @output); --- > @cmdout = grep(/(9655006|9413827)/, @output);
cp/g01/11.2.0.2/grid/crs/install/crsconfig_lib.pm/g01/11.2.0.2/grid/crs/install/crsconfig_lib.pm.bak
并在所有节点上复制该配置文件
scp /g01/11.2.0.2/grid/crs/install/crsconfig_lib.pmvrh2:/g01/11.2.0.2/grid/crs/install/crsconfig_lib.pm
附表:
软件包列表
p6880880_112000_LINUX.zip
p9413827_112010_LINUX.zip
p10404530_112030_LINUX_1of7.zip
p10404530_112030_LINUX_2of7.zip
p10404530_112030_LINUX_3of7.zip
/opt/CVU_11.2.0.3.0_grid/runfixup.sh
rootupgrade.sh记录
[root@racdou01install]# /u01/11.2.0.3/rootupgrade.sh
Performingroot user operation for Oracle 11g
Thefollowing environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/11.2.0.3
Enterthe full pathname of the local bin directory: [/usr/local/bin]: y
Creatingy directory...
Copying dbhome to y ...
Copying oraenv to y ...
Copying coraenv to y ...
Entrieswill be added to the /etc/oratab file as needed by
DatabaseConfiguration Assistant when a database is created
Finishedrunning generic part of root script.
Nowproduct-specific root actions will be performed.
Usingconfiguration parameter file: /u01/11.2.0.3/crs/install/crsconfig_params
Creatingtrace directory
ASM 升级已在第一个节点上开始。
CRS-2791:正在启动用于关闭'racdou01' 上 Oracle High Availability Services 管理的资源的操作
CRS-2673:尝试停止'ora.crsd' (在 'racdou01' 上)
CRS-2790:正在启动关闭'racdou01' 上集群就绪服务管理的资源的操作
CRS-2673:尝试停止'ora.LISTENER.lsnr' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.racdou.db' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.registry.acfs' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.LISTENER_SCAN1.lsnr' (在 'racdou01' 上)
CRS-2677:成功停止'ora.registry.acfs' (在 'racdou01' 上)
CRS-2677:成功停止'ora.LISTENER_SCAN1.lsnr' (在 'racdou01' 上)
CRS-2673:尝试停止 'ora.scan1.vip'(在 'racdou01' 上)
CRS-2677:成功停止'ora.LISTENER.lsnr' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.racdou01.vip' (在 'racdou01' 上)
CRS-2677:成功停止'ora.scan1.vip' (在 'racdou01' 上)
CRS-2672:尝试启动'ora.scan1.vip' (在 'racdou02' 上)
CRS-2677:成功停止 'ora.racdou01.vip'(在 'racdou01' 上)
CRS-2672:尝试启动'ora.racdou01.vip' (在 'racdou02' 上)
CRS-2676:成功启动'ora.scan1.vip' (在 'racdou02' 上)
CRS-2676:成功启动'ora.racdou01.vip' (在 'racdou02' 上)
CRS-2672:尝试启动'ora.LISTENER_SCAN1.lsnr' (在 'racdou02' 上)
CRS-2676:成功启动'ora.LISTENER_SCAN1.lsnr' (在 'racdou02' 上)
CRS-2677:成功停止'ora.racdou.db' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.DATA.dg' (在 'racdou01' 上)
CRS-2677:成功停止'ora.DATA.dg' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.asm' (在 'racdou01' 上)
CRS-2677:成功停止'ora.asm' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.eons' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.ons' (在 'racdou01' 上)
CRS-2677:成功停止'ora.ons' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.net1.network' (在 'racdou01' 上)
CRS-2677:成功停止'ora.net1.network' (在 'racdou01' 上)
CRS-2677:成功停止'ora.eons' (在 'racdou01' 上)
CRS-2792:关闭'racdou01' 上集群就绪服务管理的资源的操作已完成
CRS-2677:成功停止'ora.crsd' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.cssdmonitor' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.ctssd' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.evmd' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.asm' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.drivers.acfs' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.mdnsd' (在 'racdou01' 上)
CRS-2677:成功停止'ora.cssdmonitor' (在 'racdou01' 上)
CRS-2677:成功停止'ora.evmd' (在 'racdou01' 上)
CRS-2677:成功停止'ora.ctssd' (在 'racdou01' 上)
CRS-2677:成功停止'ora.mdnsd' (在 'racdou01' 上)
CRS-2677:成功停止'ora.drivers.acfs' (在 'racdou01' 上)
CRS-2677:成功停止'ora.asm' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.cssd' (在 'racdou01' 上)
CRS-2677:成功停止'ora.cssd' (在 'racdou01' 上)
CRS-2673:尝试停止 'ora.gpnpd'(在 'racdou01' 上)
CRS-2673:尝试停止'ora.diskmon' (在 'racdou01' 上)
CRS-2677:成功停止'ora.gpnpd' (在 'racdou01' 上)
CRS-2673:尝试停止'ora.gipcd' (在 'racdou01' 上)
CRS-2677:成功停止'ora.gipcd' (在 'racdou01' 上)
CRS-2677:成功停止'ora.diskmon' (在 'racdou01' 上)
CRS-2793:关闭'racdou01' 上 Oracle High Availability Services 管理的资源的操作已完成
CRS-4133:Oracle High Availability Services has been stopped.
OLRinitialization - successful
ReplacingClusterware entries in inittab
clscfg:EXISTING configuration version 5 detected.
clscfg:version 5 is 11g Release 2.
Successfullyaccumulated necessary OCR keys.
CreatingOCR keys for user 'root', privgrp 'root'..
Operationsuccessful.
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
Youhave new mail in /var/spool/mail/root
另一个节点执行rootupgrade.sh ,可能出现HANG住,或是中断情况
1、 不要害怕,先设置GRID新的环境变量
2、 crsctl query crs activeversion
OracleClusterware active version on the cluster is [11.2.0.3.0] 表示GI升级成功,可能你会问我ASM怎么办,刚才的执行的节点已经说明了ASM已经升级成功了!所以忽略即可
3、设置新的环境变量
6.升级Oracle database
unsetORACLE_HOME
unsetORACLE_BASE
unsetORACLE_SID
exportDISPLAY=192.168.1.25:0.0
./runInstaller
设置新的环境变量
7.检验升级结果
su –oracle
select* from v$version;
selectcomp_name,version,status from dba_registry;
su –grid
select* from v$version;
crsctlquery crs softwareversion racdou01
crsctlquery crs softwareversion racdou02
crsctlquery crs activeversion