基本情况介绍:
aix oracle rac 10.2.0.4使用的是全部为裸设备,原来的dg为db_dg,更改后的dg为db_dg_new,/u02/arch/fndb和/u03/arch/fndb为归档位置。在/u02/oradata/fndb有软连接指向lv。如data01.dbf->/dev/vx/rdsk/db_dg/data01
1.1 备份数据库文件信息
#sqlplus / as sysdba
执行如下sql:
spool /home/oracle/fndb_file.txt
set pagesize 999
set linesize 200
col name for a50
col member for a55
select file#,name from v$datafile ;
select file#,name from v$tempfile ;
select * from v$controlfile ;
select * from v$log ;
select * from v$logfile ;
spool off ;
exit
1.2 RMAN备份
以oracle用户登录10.29.192.12,执行如下操作进行备份:
#export ORACLE_SID=fndb1
#/home/oracle/scripts/backdbfull.sh
获取参数文件、控制文件备份集信息
#rman target /
RMAN> list backup of spfile ;
RMAN> list backup of controlfile ;
记录以上的备份的文件及路径信息。
1.3 磁带备份
在需要备份的主机上执行(oracle用户)
/usr/openv/netbackup/bin/bpbackup -L /tmp/bakcup.log /u03_old/rmanbak/
1.4 停止监听和数据库
以oracle用户登录10.29.192.12,执行如下命令:
#srvctl stop database –d fndb
#srvctl stop listener -n bejbpm09
#srvctl stop listener -n bejbpm11
验证是否停止:
#crs_stat –t
1.5 确认目录u02、u03、u02_old、u03_old存在
通知服务器团队挂载新存储,挂载规则原来的u02变为u02_old,原来的u03变为u03_old,新的存储挂载为u02和u03 。
创建数据库需要的目录:
在新u02创建:
#mkdir –p /u02/arch/fndb
#mkdir –p /u02/oradata/fndb
在新u03创建:
#mkdir –p /u03/arch/fndb
#mkdir –p /u03/rmanbak/fndb
1.6 创建软链接
规则:创建和u02_old下同名的软链接,指向新存储的lv。
# ls -l | grep -v "total" | awk '{print "ln -s " $11" "$9}' | sed -e 's/\/db_dg\//\/db_dg_new\//g' > /u02/oradata/fndb/ln_fndb.sh
#cd /u02/oradata/fndb#chmod u+x ln_fndb.sh
#./ln_fndb.sh
1.7 恢复数据库
1.7.1 备份pfile
#export ORACLE_SID=fndb1
#cd $ORACLE_HOME/dbs
#cp initfndb1.ora initfndb1.ora.`date +%Y%m%d`
#ls
1.7.2 恢复参数文件和控制文件
参数文件需要通过srvctl命令来修改:
显示:
srvctl config database -d fndb -a
修改:
srvctl modify database -d fndb -p ' /dev/vx/rdsk/db_dg_new/spfile'
RMAN> restore controlfile from backupset '备份文件' ;--此处的备份文件在前面已经记录。
RMAN> startup mount ;
1.7.3 恢复数据库
RMAN> run{
crosscheck backup ;
delete expired backup ;
catalog start with '/u03_old/rmanbak/fndb/';
restore database ;
recover database ;
alter database open resetlogs ;
}
1.7.4 打开数据库
# srvctl start database –d fndb
查看alert日志确认是否正常
1.8 迁移CRS组件
1.8.1 在线迁移ocr
以下操作需要root用户。
$id
$/u01/oracle/db_1/bin/ocrconfig –replace ocr /dev/vx/rdsk/db_dg_new/ocr1
$/u01/oracle/db_1/bin/ocrconfig –replace ocrmirror /dev/vx/rdsk/db_dg_new/ocr2
$su – oracle
#ocrcheck –验证
1.8.2 迁移voting disk
停止crs服务,
以root用户登录10.29.192.12,执行/etc/init.d/init.crs stop。
以root用户登录10.29.192.16,执行/etc/init.d/init.crs stop。
删除原来的vote1
$id –确认root
$/u01/oracle/crs/bin/crsctl delete css votedisk /dev/vx/rdsk/db_dg/vote1 –force
增加新vote1
$/u01/oracle/crs/bin/crsctl add css votedisk /dev/vx/rdsk/db_dg_new/vote1 –force
删除原来的vote2
$/u01/oracle/crs/bin/crsctl delete css votedisk /dev/vx/rdsk/db_dg/vote2 –force
增加新vote2
$/u01/oracle/crs/bin/crsctl add css votedisk /dev/vx/rdsk/db_dg_new/vote2 –force
删除原来的vote3
$/u01/oracle/crs/bin/crsctl delete css votedisk /dev/vx/rdsk/db_dg/vote3 –force
增加新vote3
$/u01/oracle/crs/bin/crsctl add css votedisk /dev/vx/rdsk/db_dg_new/vote3 –force
$/u01/oracle/crs/bin/crsctl query css votedisk
1.9 启动CRS
以root用户登录10.29.192.12,执行/etc/init.d/init.crs start。
以root用户登录10.29.192.16,执行/etc/init.d/init.crs start。
检查数据库运行情况。一切正常,本次迁移完成。遇到的问题:
1、spfile的修改需要通过srvctl来做。
2、votedisk的迁移需要停止crs。不停止crs可能会导致错误。当时遇到的问题时,按照步骤添加时。最后的votedisk路径都会变为vote3即最后一次增加的内容。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14202311/viewspace-774714/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14202311/viewspace-774714/