/dev/sda1:LABEL=\/dev/sdb1:LABEL=\/dev/sdc1:LABEL=\/dev/sdd1:LABEL=\/dev/sde1:LABEL=\/dev/sdf1:LABEL=\/dev/sdg1:LABEL=\/dev/sdh1:LABEL=\/dev/sdk1:LABEL=\/dev/sdl1:LABEL=\
root@rmvsx2:~ # blkid|grep sd.*oracleasm|while read a b;do echo -n $a$b\i scsi_id -g -s /block/{})done;
/dev/sda1:LABEL=\/dev/sdb1:LABEL=\/dev/sdc1:LABEL=\/dev/sdd1:LABEL=\/dev/sde1:LABEL=\/dev/sdf1:LABEL=\/dev/sdg1:LABEL=\/dev/sdh1:LABEL=\/dev/sdk1:LABEL=\/dev/sdl1:LABEL=\
root@rmvsx3:~ # blkid|grep sd.*oracleasm|while read a b;do echo -n $a$b\i scsi_id -g -s /block/{})done;
/dev/sda1:LABEL=\/dev/sdb1:LABEL=\/dev/sdc1:LABEL=\/dev/sdd1:LABEL=\/dev/sde1:LABEL=\/dev/sdf1:LABEL=\/dev/sdg1:LABEL=\/dev/sdh1:LABEL=\/dev/sdk1:LABEL=\/dev/sdl1:LABEL=\
scsi的id号和磁盘标记与所有节点匹配是很重要的,记录每个多路径系统,每个聚集ASM分区包含两个物理磁盘路径,对于所有的节点,测试ASM分区在物理上是可读的,你可以使用以下命令导出ASM分区的头信息:
find /dev/oracleasm/disks -type b | xargs -i sh -c \
运行在一个测试集群中的一个节点上的例子如下:
root@rmvsx1:~ # find /dev/oracleasm/disks -type b | xargs -i sh -c \/dev/oracleasm/disks/DISK4 ORCLDISKDISK4 DATA_0004 DATA
DATA_0004
/dev/oracleasm/disks/DATA3 ORCLDISKDATA3 DATA_0003 DATA
DATA_0003
/dev/oracleasm/disks/DATA2 ORCLDISKDATA2 DATA_0002 DATA
DATA_0002
/dev/oracleasm/disks/DATA1 ORCLDISKDATA1 DATA_0001 DATA
DATA_0001
/dev/oracleasm/disks/DATA0 ORCLDISKDATA0 DATA_0000 DATA
DATA_0000
确保磁盘名字和分区名字在所有的节点上是相同的,如果他们不相同,检查所有节点上的/etc/multipath.conf是否一致,映射到alias的标示符是否正确. 如果oracleasm服务没有运行,分区的名字可以通过以下命令从asm磁盘中导出: # dd if=/dev/mapper/data0p1 bs=16 skip=2 count=1 | hexdump -C 1+0 records in 1+0 records out
16 bytes (16 B) copied, 0.037821 seconds, 0.4 kB/s
00000000 4f 52 43 4c 44 49 53 4b 44 41 54 41 30 00 00 00 |ORCLDISKDATA0...|
未测试的多路径LUNs可以重新定义和导出以确保磁盘正确映射:
# multipath -ll | grep -A 4 data0
data0 (14945540000000000646174612d3000000000000000000000) dm-2 IET,VIRTUAL-DISK [size=1.0G][features=1 queue_if_no_path][hwhandler=0][rw]
\\_ round-robin 0 [prio=2][active] \\_ 1:0:0:0 sdb 8:16 [active][ready] \\_ 0:0:0:0 sda 8:0 [active][ready]
然后在asm磁盘分区运行以下命令:
# dd if=/dev/sda1 bs=16 skip=2 count=1 | hexdump -C 1+0 records in 1+0 records out
16 bytes (16 B) copied, 0.00071 seconds, 22.5 kB/s
00000000 4f 52 43 4c 44 49 53 4b 44 41 54 41 30 00 00 00 |ORCLDISKDATA0...| # dd if=/dev/sdb1 bs=16 skip=2 count=1 | hexdump -C 1+0 records in 1+0 records out
16 bytes (16 B) copied, 0.000705 seconds, 22.7 kB/s
00000000 4f 52 43 4c 44 49 53 4b 44 41 54 41 30 00 00 00 |ORCLDISKDATA0...|
4.最后的服务检查
作为最后的一个检查,在所有的节点上运行以下命令:
# service oracleasm status Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
root@rmvsx3:/etc/sysconfig # service oracleasm listdisks DATA0 DATA1 DATA2 DATA3
root@rmvsx3:/etc/sysconfig # oracleasm querydisk DATA0
磁盘\是一个合法的ASM分区 (依次检查DATA1, DATA2 and DATA3)
一个好的做法是在第一次安装的时候(或者是已经安装但是存在问题)重新启动所有的节点,以确保所有的服务都正确的映射到所有的节点,oracle服务状态无错误,所有的ASM分区都是可用的. 总结:
这些测试将建立静态健康的环境当中并且是基于ASMLib子系统的所有节点之上的.
编辑于联动北方技术论坛