目前数据库采用10gRAC,采用裸设备存储数据,要求将目前的rac数据从现有存储割接到新存储,为保证业务的高度可持续性,要求业务终止时间要尽可能短。
方法:
采用建立临时库将数据文件通过rman copy方式恢复到新存储设备上,运用归档日志恢复的方式进行迁移。
具体实施过程如下(存储已经挂接新存储VG配置到当前HACMP,lv已经一一对应划分)。
1.在其中一号节点上建立TEST实例,大致需要2G左右的内存,该实例的主要任务是为了生产环境的数据文件的迁移,减少宕机时间。(在线操作)
注:TEST实例的参数文件为生产环境中创建出:
create pfile=’/tmp/init.ora from spfile
控制文件也是从生产环境备份出来:
alter database backup controlfile to '........................';
修改参数文件的内容。创建相应的dump目录,将数据库启动到mount状态:
包括控制文件的路径等等。
注意这一步对于参数文件中的路径应当仔细修改,包括集群参数,dump文件路径,控制文件路径,数据库文件名,实例 undo等。
2.在生产环境一号节点利用rman copy将数据文件拷贝到新存储指定位置,完成数据文件从原存储到新存储的迁移。(在线操作)
run
{
copy datafile '........................' to '..................';
};
3.在TEST数据库中mount状态下,修改数据文件的位置:
alter database rename file '.........' to '.........';
4.所有数据文件rename完毕后对数据库执行recover
run
{
set until sequence X thread 1;
set until sequence X thread 2;
recover database;
}
备注:(以上过程均需��在线操作,但不涉及对生产环境宕机,数据库正常应用,数据文件在迁移过程中可能会影响生产系统性能,视情况而定,如果对性能产生影响,可对copy进行限速)
5.新老库的切换,将生产库宕机,通过dd将spfile,控制文件,redo拷贝到指定位置。
数据库启动到nomount状态,修改参数文件中控制文件的新位置:
alter system set control_files=’…………’,’………………….’scope=spfile;
修改本地$ORACLE_HOME/dbs/下的参数文件位置并重新启动数据库
重新修改控制文件,rename redo文件,temp文件等。
recover 数据库。
打开数据库。
备注:(该过程是新老存储的割接关键,需将生产环境宕机,如果割接出现问题,
6.OCR和VOTE盘迁移:
双节点停止crs
crsctl stop crs
对ocr信息进行export备份:
# ocrconfig -export /XXX/xxx.dmp
修改/etc/oracle/ocr.loc到新目录
将备份信息import到新的设备上
ocrconfig -import /XXX/xxx.dmp
vote盘迁移:
增加新磁盘上的vot盘到CRS中
# crsctl add css votedisk /dev/xxx–force(新增加vote盘)
确认是否成功:
# crsctl query css votedisk
删除老VOT盘
# crsctl delete css votedisk /dev/xxxxxx -force(原vote盘)
重新启动crs
crsctl start crs