10204 RAC 裸设备升级11汇总.docx
《10204 RAC 裸设备升级11汇总.docx》由会员分享,可在线阅读,更多相关《10204 RAC 裸设备升级11汇总.docx(19页珍藏版)》请在冰豆网上搜索。
10204RAC裸设备升级11汇总
项目ID:
文件序号:
文件编号:
密级:
总页数:
19
数据库升级11gR2方案
版本
拟制
小明
日期
2013/10/25
审核
日期
批准
日期
声明
本文件所有权和解释权归所有,未经****书面许可,不得复制或向第三方公开。
Thisdocumentisthepropertyof****andcanbeneitherreproducednordisclosedtoathirdpartywithoutawrittenauthorization.
修订历史记录
(A-添加,M-修改,D-删除)
1方案介绍
目前现网数据库Oracle10.2.0.4RAC升级到11.2.0.4方法主要有3种,一种是直接手工升级的方式,二种是通过dbua升级,即在现有生产环境中将数据库版本从10gr2升到11gr2,三种是采用异机迁移升级的方式实施,根据目前资源情况,我们计划采用第二种方式进行数据库升级。
我们这里讲的是Linux5.510.2.0.4RAC祼负备升级到11.2.0.4,dbua升级方式,针对AIX平台有所不同。
说明:
迁移升级相对于直接升级的风险性相对较低,但是需要的硬件资源较多,就目前硬件资源来说,不能满足迁移升级条件。
2操作时间评估
操作项目
估算用时
回退用时
实际用时
前期环境准备
2
2
CRS升级到GRID
3
2
5
DB升级
6
3
9
3操作步骤
4.对oracle10g环境备份
1、升级前须增加一个scanip跟VIP同一网段。
2、做安装前必须对原有oracle10g数据以及环境作备份,备份的内容有oraInventory、asmdiskheader、ocr、votedisk、/etc/oratab、用户环境变量,UnsetOracle用户所有的环境变量
在安装11gGI之前备份10gCRS环境配置文件的操作步骤
1、disable服务器自动启动CRS
以root用户执行:
$CRS_HOME/bin/crsctldisablecrs
2、在/etc目录下新建/etc/10gcrs_bak目录作为备份文件存放的目录
以root用户登录
cd/etc
mkdir10gcrs_bak
3、将以下需要备份的文件和文件夹进行备份
以root用户登录,备份文件:
cp-p/etc/inittab /etc/10gcrs_bak/inittab
cp-p/etc/init.crs /etc/10gcrs_bak/init.crs
cp-p/etc/init.crsd /etc/10gcrs_bak/init.crsd
cp-p/etc/init.cssd /etc/10gcrs_bak/init.cssd
cp-p/etc/init.evmd /etc/10gcrs_bak/init.evmd
cp-p/etc/oratab /etc/10gcrs_bak/oratab
cp-p/etc/oraInst.loc /etc/10gcrs_bak/oraInst.loc
cp-p/usr/local/bin/dbhome /etc/10gcrs_bak/dbhome
cp-p/usr/local/bin/coraenv /etc/10gcrs_bak/coraenv
cp-p/usr/local/bin/oraenv /etc/10gcrs_bak/oraenv
cp-rf/etc/oracle /etc/10gcrs_bak
cp–rf/oracle/product/oracle/product_bak
1
2
3
4
4.1创建文件系统、用户组
创建文件系统,大小50GB,属主oracle:
oinstall。
idoracle
uid=200(oracle)gid=200(oinstall)groups=200(oinstall),201(dba)
groupadd-g1020asmadmin
groupadd-g1021asmdba
groupadd-g1022asmoper
groupadd-g1032oper
usermod-goinstall-Gdba,oper,asmadmin,asmdba,asmoperoracle
idoracle
uid=200(oracle)gid=200(oinstall)groups=200(oinstall),201(dba),1020(asmadmin),1021(asmdba),1022(asmoper),1032(oper)
--创建文件夹
[root@rac1~]#mkdir-p/oracle/app/11.2.4/grid
[root@rac1~]#mkdir-p/oracle/app/11.2.4/db_1
[root@rac1~]#chown-Roracle:
oinstall/oracle
--禁用ntp服务
#servicentpdstop
#chkconfigntpdoff
#mv/etc/ntp.conf/etc/ntp.conf.orig
#rm/var/run/ntpd.pid
4.2停应用
4.3停监听
lsnrctlstop
4.4停数据库
--开起flashback,需要共享盘,如果有存储更好,如果没有就用NFS
--查询是否有开起
SQL>selectflashback_onfromV$database;
FLASHBACK_ON
------------------------------------
NO
SQL>altersystemsetdb_recovery_file_dest_size=200Gscope=both;
SQL>altersystemsetdb_recovery_file_dest='/flashback/'scope=both;
SQL>shutdownimmediate
SQL>startupmount
SQL>alterdatabasearchivelog;
SQL>alterdatabaseflashbackon;
SQL>alterdatabaseopen;
SQL>selectflashback_onfromV$database;
FLASHBACK_ON
------------------------------------
YES
--创建数据库还原点,这点很重要,如果升级失败可以flashback升级前。
createrestorepointup11preguaranteeflashbackdatabase;
4.5设置环境变量
--设置Oracle用户环境变量,因为是11gR2RAC升级,如果创建Grid用户,升级会报错.所以我们只需要配置Oracle用户.为了让Oracle用户轻松切换不同的环境变量,我们先创建一个基本的环境变量把共通点列在里面,然后在我们在创建grid_env和db_env两个文件来存放异同点,方便切换.
--以grid用户登录,编辑profile配置文件,添加配置信息如下:
[oracle@rac1~]$cp.bash_profile.11bash_profile
[oracle@rac1~]$vi.11bash_profile
#OracleSettings
TMP=/tmp;
exportTMP
TMPDIR=$TMP;
exportTMPDIR
ORACLE_HOSTNAME=nydba-test1;
exportORACLE_HOSTNAME
ORACLE_BASE=/oracle/app;
exportORACLE_BASE
GRID_HOME=/oracle/app/11.2.4/grid;
exportGRID_HOME
DB_HOME=$ORACLE_BASE/11.2.4/db_1;
exportDB_HOME
ORACLE_HOME=$DB_HOME;
exportORACLE_HOME
ORACLE_SID=centerdb1;
exportORACLE_SID
ORACLE_TERM=xterm;
exportORACLE_TERM
BASE_PATH=/usr/sbin:
$PATH;
exportBASE_PATH
PATH=$ORACLE_HOME/bin:
$BASE_PATH;
exportPATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:
/lib:
/usr/lib;
exportLD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:
$ORACLE_HOME/jlib:
$ORACLE_HOME/rdbms/jlib;
exportCLASSPATH
if[$USER="oracle"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
fi
aliasgrid_env='./home/oracle/grid_env'
aliasdb_env='./home/oracle/db_env'
exportDISPLAY=192.168.182.60:
0.0
--vigrid_env如下所示:
ORACLE_SID=+ASM1;
exportORACLE_SID
ORACLE_HOME=$GRID_HOME;
exportORACLE_HOME
PATH=$ORACLE_HOME/bin:
$BASE_PATH;
exportPATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:
/lib:
/usr/lib;
exportLD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:
$ORACLE_HOME/jlib:
$ORACLE_HOME/rdbms/jlib;
exportCLASSPATH
--vidb_env如下所示:
ORACLE_SID=centerdb1;
exportORACLE_SID
ORACLE_HOME=$DB_HOME;
exportORACLE_HOME
PATH=$ORACLE_HOME/bin:
$BASE_PATH;
exportPATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:
/lib:
/usr/lib;
exportLD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:
$ORACLE_HOME/jlib:
$ORACLE_HOME/rdbms/jlib;
exportNLS_LANG=american_america.UTF8
exportCLASSPATH
4.6升级前检查是否满足升级条件
./runcluvfy.shstage-precrsinst-upgrade-nnydba-test1,nydba-test2-rolling-src_crshome/oracle/crs-dest_crshome/oracle/app/11.2.4/grid-dest_version11.2.0.4.0-fixup-fixupdir/home/oracle/fixupscript-verbose
4.7使用Oracle用户进行安装升级
首先应用新的环境变量,切换到grid_env进行安装.
[oracle@rac1~]$source.11bash_profile
[oracle@rac1~]$grid_env
[oracle@rac1tmp]$echo$ORACLE_HOME
/oracle/app/11.2.4/grid
[oracle@rac1tmp]$echo$ORACLE_SID
+ASM1
4.8升级CRS
--这里选择第三项:
UpgradeOracleGridInfrastuctureorOracleAutomaticStorageManagement
--以上有图片没有保存,主要是检查没有问题就可以一直下一步。
--ROOT执行,升级完之后检查,ocr和votedisk还是使用裸设备的.
[oracle@rac1~]$ocrcheck
StatusofOracleClusterRegistryisasfollows:
Version :
3
Totalspace(kbytes) :
517828
Usedspace(kbytes) :
6212
Availablespace(kbytes):
511616
ID :
1423844012
Device/FileName :
/dev/raw/raw1
Device/FileName :
/dev/raw/raw2
Device/Fileintegritychecksucceeded
Device/Filenotconfigured
Clusterregistryintegritychecksucceeded
[oracle@rac1~]$crsctlquerycssvotedisk
0. 0 /dev/raw/raw3
0. 0 /dev/raw/raw4
0. 0 /dev/raw/raw5
located1votedisk(s).
--这里把CRS迁移到GRID,建一个DG。
--迁移OCR到ASM
[root@rac1bin]#./ocrconfig-add+ocr
[root@rac1bin]#./ocrconfig-delete/dev/raw/raw1
[root@rac1bin]#./ocrconfig-delete/dev/raw/raw2
[oracle@rac1~]$ocrcheck
StatusofOracleClusterRegistryisasfollows:
Version:
3
Totalspace(kbytes):
517828
Usedspace(kbytes):
6236
Availablespace(kbytes):
511592
ID:
1423844012
Device/FileName:
+ocr
Device/Fileintegritychecksucceeded
Device/Filenotconfigured
Device/Filenotconfigured
Device/Filenotconfigured
Device/Filenotconfigured
Clusterregistryintegritychecksucceeded
Logicalcorruptioncheckbypassedduetonon-privilegeduser
--迁移VOTEINGDISK到ASM
[oracle@rac1~]$crsctlreplacevotedisk+ocr
CRS-4256:
Updatingtheprofile
Successfuladditionofvotingdisk4d0798b6cd214fb1bf8b201b69497a20.
Successfuldeletionofvotingdisk24837164cd2aef11ff7dfe4c65ee3ba9.
Successfullyreplacedvotingdiskgroupwith+ocr.
CRS-4256:
Updatingtheprofile
CRS-4266:
Votingfile(s)successfullyreplaced
[oracle@rac1~]$crsctlquerycssvotedisk
##STATEFileUniversalIdFileNameDiskgroup
------------------------------------------
1.ONLINE4d0798b6cd214fb1bf8b201b69497a20(/dev/raw/raw6)[OCR]
Located1votingdisk(s).
到此,我们已经把裸设备上的OCR和VOTEINGDISK迁移到了ASM中,接下来就是最后升级DB.
4.9升级DB
----停数据库
srvctlstopdatabase-dcenterdb
--开始安装运行./runInstaller
--中间图片省掉,如果不出问题都是下一步,只说重点
--下一步很重要,DegreeofParallelism:
1是你跑脚本的并行数,这根据服务器CPU个数来定,这里最好先10这样跑脚本就很快,不然要几个小时。
--到这里DB就升级完成,如果中间跑脚本出错,那就要详细检查。
--最后检查是否有失效对象。
select'alter'||object_type||''||owner||'.'||object_name||'compile;'
fromdba_objectsa
where(a.owner,a.object_name)in
(selectowner,object_namefromdba_objects)
anda.status='INVALID';
--通过gv视图可以看到为11.2.0.4.0
--整个升级完成后还是使用裸设备,如果你原来就是ASM就可以直接升级到ASM,只是CRS迁移到了ASM,当然你可以把数据库迁移到ASM进行管理。
--可以通过ocrcheck检查OCR使用的是+ocr
4.10启应用进行测试
4.11应用检查
5.回退方案:
当升级过程失败,都需要进行回退,但是由于在升级的不同阶段,回退方案不同,可分为如下几种情况
1、GRIDINFRASTRUCTUREOUI安装失败
在这种情况下,未执行脚本,未对ocr的信息进行更改,所以只需查看oraInventory是否被更改,如果被更改则执行以下步骤回退,如果未更改orainventory则直接删除NEW_ORACLE_HOME即可。
2、当执行rootupgrade.sh失败
如果两个节点均未成功执行,则跳过上一条命令
/ocw/grid/oui/bin/runInstaller-updateNodeListORACLE_HOME="/ocw/grid"CRS=true
8、执行回退方案1删除grid软件
3、asmca失败
asmca升级只是更改了部分配置文件,比如/etc/oratab,以及在GRID_HOME/dbs下建立参数文件和在CRSResource中建立ora.asm等资源,所以如果asmca升级失败,只需按照回退方案二中的回退方案执行即可,无需其他操作
4、升级数据字典失败
使用11g软件启动数据库到mount状态
Flashbackdatabasetorestorepointup11pre;
关闭数据库后使用10g软件启动数据库到mount状态,然后使用alterdatabaseopenresetlogs打开数据库
删除还原点droprestorepointup11gre;
顺序执行2、1回退方案回退grid和删除软件
注意:
A、如果使用flashback不能回退到升级前的数据库状态,则需要使用rman进行不完全恢复到升级前的时间点。
B、数据库回退到10g版本后,如果需要再短时间内重新升级,可考虑让10g的数据库在11gr2GI环境下运行。
注意:
由于restorepoint是在升级之初建立的,所以不管在那一步执行失败后需要回滚或者升级成功,均需要在数据库启动后手工执行droprestorepointup11gre删除还原点