由于Oracle 11.2rac 和oracle 10.2有了很大变化,因此在迁移方面也有了一些不同之处,下边我把只更换存储基本步骤给大家分享一下。
基本描述
数据库环境:aix主机、oracle 11.2 rac、需求是主机不更换,迁移到新存储
原有的dg:griddg是ocr和vote使用的dg ,datadg是数据文件使用的dg
新存储dg:gridnewdg是ocr和vote使用的dg,newdatadg是数据文件使用的dg
操作步骤:
1.在新存储划分空间,然后主机识别磁盘
#cfgmgr
2.更改磁盘属性
reserve_policy根据存储厂家决定 ibm:no_reserve,可以去oraclesupport查询各个厂家怎么更改
3.修改磁盘权限
#chown grid:asmadmin dev/rhdiskn
4.创建新的磁盘组
使用grid用户
$asmca
5.迁移ocr file,先添加,后删除
su - root
# u01/11.2.0/grid/bin/ocrconfig -add'+gridnewdg'
#ocrconfig -delete +griddg
6.迁移vote文件
su - grid
$ crsctl replace votedisk '+gridnewdg'
Successful addition of voting disk3f4020905f184ff4bff57bd6e635331b.
Successful deletion of voting disk8a7dd049391f4f41bf97b4414ee73bb2.
Successfully replaced voting disk groupwith +gridnewdg.
CRS-4266: Voting file(s) successfullyreplaced
7.迁移 asm使用的参数文件
#su - grid
sql> create pfile='/tmp/pfile.txt' fromspfile;
sql> create spfile='+gridnewdg' frompfile='/tmp/pfile.txt'
把两台机器的has全部重新启动,查看spfile是否已经迁移过去
每台机器都要执行
#/u01/11.2.0/grid/bin/crsctl stop has
#/u01/11.2.0/grid/bin/crsctl start has
然后关闭两个实例
#su - oracle
sqlplus as sysdba
shutdown immediate
8.迁移控制文件
#su - oracle
查询正在使用的控制文件
sql>startup nomount;
RMAN> restore controlfile to'+newdatadg' from '+DATADG/rac/controlfile/current.256.801769687';
9.更改参数文件
SQL>altersystem set control_files='+newdatadg/rac/controlfile/current.256.802020205'scope=spfile;
10.重新启动实例到mount状态
sql>startup mount
sql>show parameters control_file
11.迁移数据库数据到新的dg,可以分配多个通道来增加迁移数据文件的速度
RMAN>run
{allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup as copy database format '+newdatadg';
}
12.把数据库数据文件指向新的存储并且打开数据库
RMAN>switchdatabase to copy;
RMAN>recover database;
SQL>alterdatabase open resetlogs;
把另外一个节点起来,否则另外节点的redo不能删除。
SQL>startup
13.把redo日志组添加新的成员,删除老的成员
查看原来有多少组,就添加多少成员
SQL>alterdatabase add logfile member '+newdatadg' to group 1;
SQL>alterdatabase add logfile member '+newdatadg' to group 2;
SQL>alterdatabase add logfile member '+newdatadg' to group 3;
SQL>alterdatabase add logfile member '+newdatadg' to group 4;
使用如下方法删除原来旧的redo成员
SQL>alterdatabase drop logfile member '+DATADG/rac/onlinelog/group_3.265.801770831'
……
14.更改数据库的参数文件
创建新的参数文件到新dg中,只需要在一台机器上操作就可以
#su – oracle
$sqlplus / as sysdba
SQL>create pfile=/tmp/pfile.txt' fromspfile;
SQL>create spfile='+newdatadg/rac/spfile'from pfile='/tmp/pfile.txt'
修改本地pfile文件里面的指针,需要在两台主机都要更改
$vi $ORACLE_HOME/dbs/intrac1.ora
spfile=+newdatadg/rac/spfile
重新启动库查看是否更改
15. 添加新临时文件,删除原来dg的旧临时文件
查询临时文件位置
SQL> select file_name fromdba_temp_files;
添加新的临时文件
SQL>alter tablespace temp add tempfile'+newdatadg' size 2000M;
删除原有dg的临时文件
SQL>alterdatabase tempfile '+DATADG/rac/tempfile/temp.262.801769711' drop;
至此,我们RAC数据库从一个存储迁移到另外一个存储全部完成。