本文可帮助你查找哪个ASM磁盘映射到哪个Linux分区或DM设备。
前言 如果你作为Linux管理员长时间退出工作,你可能已经了解了ASM,Device Mapper Multipathing(DM-Multipathing)。 有多种方法可以检查这些信息,但是,使用默认命令时,你将获得部分信息。它不会在单个输出中一起显示所有内容。如果要在单个输出中一起检查所有内容,那么我们需要编写一个小的shell脚本来实现此目的。我们添加了两个shell脚本来获取这些信息,你可以使用哪个适合你。主要和次要号码可用于匹配Linux系统中的物理设备。 如果要管理Oracle ASM磁盘(例如启动、启用、停止、列表、查询等),请自行操作。
ASMLib和Device Mapper多路径(DM-Multipathing)简介 ASMLib是Oracle数据库的自动存储管理功能的可选支持库。自动存储管理(ASM)简化了数据库管理并大大减少了内核资源使用(例如,打开文件描述符的数量)。它消除了DBA直接管理数千个Oracle数据库文件的需要,只需要管理分配给Oracle数据库的磁盘组。ASMLib允许使用ASM的Oracle数据库更高效,更有能力访问它正在使用的磁盘组。 附:Device Mapper多路径(DM-Multipathing)简介 Device Mapper多路径或DM多路径是Linux主机端本机多路径工具,它允许我们通过利用设备映射器将服务器节点和存储阵列之间的多个I/O路径配置到单个设备中。
方法1:Shell脚本将ASM磁盘映射到物理设备 在这个shell脚本中,我们使用for循环来实现结果。 此外,我们没有使用任何与ASM相关的命令。 # vi asm_disk_mapping.sh #!/bin/bash ls -lh /dev/oracleasm/disks > /tmp/asmdisks1.txt for ASMdisk in `cat /tmp/asmdisks1.txt | tail -n +2 | awk '{print $10}'` do minor=$(grep -i "$ASMdisk" /tmp/asmdisks1.txt | awk '{print $6}') major=$(grep -i "$ASMdisk" /tmp/asmdisks1.txt | awk '{print $5}' | cut -d"," -f1) phy_disk=$(ls -l /dev/* | grep ^b | grep "$major, *$minor" | awk '{print $10}') echo "ASM disk $ASMdisk is associated on $phy_disk [$major, $minor]" done 为port_scan.sh文件设置可执行权限。 $ chmod +x asm_disk_mapping.sh 最后运行脚本来实现这一目标。 # sh asm_disk_mapping.sh ASM disk MP4E6D_DATA01 is associated on /dev/dm-1 3600a0123456789012345567890234q11 [253, 1] ASM disk MP4E6E_DATA02 is associated on /dev/dm-2 3600a0123456789012345567890234q12 [253, 2] ASM disk MP4E6F_DATA03 is associated on /dev/dm-3 3600a0123456789012345567890234q13 [253, 3] ASM disk MP4E70_DATA04 is associated on /dev/dm-4 3600a0123456789012345567890234q14 [253, 4] ASM disk MP4E71_DATA05 is associated on /dev/dm-5 3600a0123456789012345567890234q15 [253, 5] ASM disk MP4E72_DATA06 is associated on /dev/dm-6 3600a0123456789012345567890234q16 [253, 6] ASM disk MP4E73_DATA07 is associated on /dev/dm-7 3600a0123456789012345567890234q17 [253, 7]
方法2:Shell脚本将ASM磁盘映射到物理设备 在这个shell脚本中,我们使用while循环来实现结果。 此外,我们正在使用ASM相关命令。 # vi asm_disk_mapping_1.sh #!/bin/bash /etc/init.d/oracleasm listdisks > /tmp/asmdisks.txt while read -r ASM_disk do major="$(/etc/init.d/oracleasm querydisk -d $ASM_disk | awk -F[ '{ print $2 }'| awk -F] '{ print $1 }' | cut -d"," -f1)" minor="$(/etc/init.d/oracleasm querydisk -d $ASM_disk | awk -F[ '{ print $2 }'| awk -F] '{ print $1 }' | cut -d"," -f2)" phy_disk="$(ls -l /dev/* | grep ^b | grep "$major, *$minor" | awk '{ print $10 }')" echo "ASM disk $ASM_disk is associated on $phy_disk [$major, $minor]" done < /tmp/asmdisks.txt 为port_scan.sh文件设置可执行权限。 $ chmod +x asm_disk_mapping_1.sh 最后运行脚本来实现这一目标。 # sh asm_disk_mapping_1.sh ASM disk MP4E6D_DATA01 is associated on /dev/dm-1 3600a0123456789012345567890234q11 [253, 1] ASM disk MP4E6E_DATA02 is associated on /dev/dm-2 3600a0123456789012345567890234q12 [253, 2] ASM disk MP4E6F_DATA03 is associated on /dev/dm-3 3600a0123456789012345567890234q13 [253, 3] ASM disk MP4E70_DATA04 is associated on /dev/dm-4 3600a0123456789012345567890234q14 [253, 4] ASM disk MP4E71_DATA05 is associated on /dev/dm-5 3600a0123456789012345567890234q15 [253, 5] ASM disk MP4E72_DATA06 is associated on /dev/dm-6 3600a0123456789012345567890234q16 [253, 6] ASM disk MP4E73_DATA07 is associated on /dev/dm-7 3600a0123456789012345567890234q17 [253, 7]
列出Oracle ASM磁盘 如果你只想列出Oracle ASM磁盘,请使用以下命令在Linux中列出可用/创建的Oracle ASM磁盘。 # oracleasm listdisks ASM_Disk1 ASM_Disk2 ASM_Disk3 ASM_Disk4 ASM_Disk5 ASM_Disk6 ASM_Disk7
列出针对主要和次要号码的Oracle ASM磁盘 如果要将Oracle ASM磁盘映射到主要和次要编号,请使用以下命令在Linux中列出可用/创建的Oracle ASM磁盘。 # for ASMdisk in `oracleasm listdisks`; do /etc/init.d/oracleasm querydisk -d $ASMdisk; done Disk "ASM_Disk1" is a valid Disk on device [253, 1] Disk "ASM_Disk2" is a valid Disk on device [253, 2] Disk "ASM_Disk3" is a valid Disk on device [253, 3] Disk "ASM_Disk4" is a valid Disk on device [253, 4] Disk "ASM_Disk5" is a valid Disk on device [253, 5] Disk "ASM_Disk6" is a valid Disk on device [253, 6] Disk "ASM_Disk7" is a valid Disk on device [253, 7] 或者,我们可以使用ls命令获得相同的结果。 # ls -lh /dev/oracleasm/disks total 0 brw-rw---- 1 oracle oinstall 253, 1 May 19 14:44 ASM_Disk1 brw-rw---- 1 oracle oinstall 253, 2 May 19 14:44 ASM_Disk2 brw-rw---- 1 oracle oinstall 253, 3 May 19 14:44 ASM_Disk3 brw-rw---- 1 oracle oinstall 253, 4 May 19 14:44 ASM_Disk4 brw-rw---- 1 oracle oinstall 253, 5 May 19 14:44 ASM_Disk5 brw-rw---- 1 oracle oinstall 253, 6 May 19 14:44 ASM_Disk6 brw-rw---- 1 oracle oinstall 253, 7 May 19 14:44 ASM_Disk7 知识扩展:不使用ls命令列出目录内容,转而使用替代命令的方法。
列出针对LUN的物理磁盘 如果要将物理磁盘映射到LUN,请使用以下命令。 # multipath -ll | grep NETAPP 3600a0123456789012345567890234q11 dm-1 NETAPP,LUN C-Mode 3600a0123456789012345567890234q12 dm-2 NETAPP,LUN C-Mode 3600a0123456789012345567890234q13 dm-3 NETAPP,LUN C-Mode 3600a0123456789012345567890234q14 dm-4 NETAPP,LUN C-Mode 3600a0123456789012345567890234q15 dm-5 NETAPP,LUN C-Mode 3600a0123456789012345567890234q16 dm-6 NETAPP,LUN C-Mode 3600a0123456789012345567890234q17 dm-7 NETAPP,LUN C-Mode
相关主题 |