欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle 10g RAC OCFS2集群存储迁移摘要

程序员文章站 2022-06-01 20:14:35
...

用户一个Oracle 10g RAC的基于ocfs2的集群,redhat 5.4 64bit环境,需要更换存储和升级更换8GHBA卡,过程总结如下:

用户一个Oracle 10g RAC的基于ocfs2的集群,RedHat 5.4 64bit环境,需要更换存储和升级更换8GHBA卡,过程总结如下:

准备篇:

1、先在root用户下,用df -h 查看原存储挂载的使用情况,评估迁移的数据量

2、用mount显示现在存储的挂载的情况和格式,把/etc/fstab 文件备份、记录下来

3、考虑到加入新HBA卡,原存储LUN识别位置会发生改变,难以识别,通过

/sbin/scsi_id -g -u -s /block/sdX,查看现有存储的每个LUN的uuid,记录下来,为保险起见,在每个挂载的LUN,touch 一个标识原sdX的和挂载点的空文件,以便同时挂载新老存储时方便识别。

4、记录下新的存储的LUN的UUID,截图备查。

操作篇:

1、oracle下

su - oracle 切换到oracle用户

sqlplus / as sysdba

shutdown immediate

退出oracle

在oracle安装的$ORACLE_HOME/crs/bin目录下,以root用户执行 ./crs_ctl disable crs,以便在这个切换重启过程中RAC crs资源不自动启动,防止数据损坏。

2、把/etc/fstab里的原存储的自动挂载注解掉,逐台关闭服务器,插入新8G FC HBA卡,先启动1台rac主机,启动后果然存储的ID发生改变,自动发现与原来fdisk -l 的id不一致,先不管

3、在存储端发现新的服务器,将预先分好的LUN分配给主机,原服务器上已经安装过多路径软件,这里没有做改变,主机端需要重新启动以便发现新分配的存储,重起后fdisk-l发现更多的存储LUN,有文件格式是原LUN,但sdX的存储完全不对,这时原来记录的UUID使用上了,用/sbin/scsi_id -g -u -s /block/sdX,逐个查看,用cat /sys/block/sda/device/vendor 也可以看到存储的生产厂商(新老存储不同厂商),这里一定仔细,老存储有数据,新存储需要挂载后格式化。

4、根据uuid把原存储的LUN还挂载到原目录下,如

mount -o datavolume,nointr -t ocfs2 /dev/sdi1 /oa 类似,把原来的存储逐一挂载到原目录,这时可以在$ORACLE_HOME/crs/bin目录下,通过./crs_crl start crs把crs启动起来,可以通过 ./crs_crl check crs 来检查,切换到oracle下,通过crs_stat -t查看RAC资源是否在线,RAC online后,那原存储和RAC启动没有问题

5、在根目录下,根据原来的挂载目录建立新目录,如原/oa,那就建/oa1目录,用来挂载新存储,LUN大于2T,需要用parted来分区,操作如下:

parted /dev/sdX

mklabel gpt

mkpart primary 0% 100%

print

quit

把规划的LUN都分好区后,需要把分区格式化为ocfs2,只需要在一个node做一次,命令mkfs.ocfs2 -b 4K -C 32K -N 4 -L oa /dev/sdc1,逐一格式化

通过mount -o datavolume,nointr -t ocfs2 /dev/sdi1 /oa1类似的命令,把规划的新存储按对应关系挂载到新的目录下。

6、停掉oracle ,停掉crs资源,通过cp -rp /原存储挂载目录 /新存储挂载目录,把文件和子目录及对应的权限都拷贝到新存储中,过程漫长,可以通过du -sh 查看新存储的容量变化,把老存储的内容原封不动拷贝到新存储。

7、拷贝完成后,umount掉所有挂载到存储,然后按原来的挂载目录,把新存储挂载到原来的挂载点,重新启动crs资源,用crs_stat -t 查看rac是否在线,如正常,那说明新存储已经可以正常工作了。

8、停数据库,停crs,关机,,把原4G HBA卡那掉,重新开机后,盘符发生改变,通过mount先手工加载,起动crs,都正常后,在/etc/fstab 下,语法如下

/dev/sde1 on /oa type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local),逐条加入,这样新存储就可以开机自动加载了,不要忘了 crscrl enable crs,让crs可以自动启动。

9、另一个节点只要同样分配LUN,也按原来的目录挂载,最后crs_stat -t 2个节点都在线,并且重启后存储挂载和crs都自动启动,工作正常,可通过在sqlplus下执行

select instance_name from v$instance;

select open_mode fromv$database;

查看数据库工作情况,这样存储迁移和HBA卡更换就完成了。

总结:

通过以上迁移方式,只涉及到数据库很少的操作,不需要导入导出数据库,完全在linux的文件层面完成迁移,对oracle水平要求比较低,逻辑上简单,可操作性强,可以比较顺利完成迁移。