oracle RAC 11g更改ASM磁盘路径

       在日常的数据库变更中,有时需要对RAC存储进行变更,我们知道最简便的方式及时通过ASM加减磁盘的方式,这对于使用的存储为相同类型时时十分简单的过程,但对于不同存储之间的切换,可能会遇到一些问题。比如,以前使用emc的存储,系统使用Linux自带的multipath多路径聚合方式,如果需要更换存储为华为存储,此时需使用华为多路径软件聚合,那么就会出现旧磁盘路径为/dev/maper/asm*,而新存储识别出的路径为/dev/asm*,此时就不能直接通过ASM加减磁盘的方式实现存储更换。对于该种更换存储路径的场景,有两种方式可以实现,一是使用UDEV绑定多路径别名时指定含有路径的别名如NAME='mapper/asm*',二是修改asm_diskstring,将/dev/mapper/*修改为/dev/*,本篇将简单简绍第一种方案。

        场景:

旧存储使用Linux自带的multipath多路径聚合,ASM识别的存储/dev/mapper/asm*,打算更换为华为存储并使用华为多路径聚合。

        方案:

使用UDEV对存储进行别名绑定,并使其生产的名称保持为/dev/mapper/asm*的格式。旧UDEV配置文件为:

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360000970000295900314533030344131",  NAME+="asm_dg_crs_p1", ACTION=="add|change", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360000970000295900314533030344130",  NAME+="asm_dg_crs_p2", ACTUIB=="add|change", OWNER="grid", GROUP="asmadmin", MODE="0660" 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360000970000295900314533030343834",  NAME+="asm_dg_crs_p3", ACTUIB=="add|change", OWNER="grid", GROUP="asmadmin", MODE="0660" 
因使用了multipath,因此生成的磁盘为:
# ll /dev/mapper/asm*
/dev/mapper/asm_dg_crs_p1 -> ../dm-0
/dev/mapper/asm_dg_crs_p2 -> ../dm-1
/dev/mapper/asm_dg_crs_p3 -> ../dm-2
       更换华为存储后,使用华为多路径软件,此时UDEV配置文件修改为:
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360000970000295900314533030344131",  NAME+="mapper/asm_dg_crs_p1", ACTION=="add|change", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360000970000295900314533030344130",  NAME+="mapper/asm_dg_crs_p2", ACTUIB=="add|change", OWNER="grid", GROUP="asmadmin", MODE="0660" 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="360000970000295900314533030343834",  NAME+="mapper/asm_dg_crs_p3", ACTUIB=="add|change", OWNER="grid", GROUP="asmadmin", MODE="0660" 
此时生成的磁盘为:
# ll /dev/mapper/asm*
/dev/mapper/asm_dg_crs_p1
/dev/mapper/asm_dg_crs_p2
/dev/mapper/asm_dg_crs_p3
       对于数据库来说,磁盘的路径/dev/mapper/*并没有变,只是系统层面对存储的多路径聚合方式变化了而已,此时可直接启动数据库即可。另外,该方法可以一个节点修改好后再修改其他节点,在线变更,业务不中断。


你可能感兴趣的:(oracle RAC 11g更改ASM磁盘路径)