Here I have used two script. You can use script in Example 2 to see the mapping with size.
Example 1:
[root@stage ~]# /etc/init.d/oracleasm listdisks
DATA1
DATA2
DATA3
DATA4
DATA5
INDX1
INDX2
INDX3
[root@stage ~]# /etc/init.d/oracleasm querydisk -d DATA1
Disk "DATA1" is a valid ASM disk on device [8,17]
[root@stage ~]# ls -l /dev | grep 8, | grep 17
brw-rw---- 1 root disk 8, 17 Sep 12 15:00 sdb1
You can use below script to check the physical device for all the disk.
#!/bin/bash
for i in `/etc/init.d/oracleasm listdisks`
do
v_asmdisk=`/etc/init.d/oracleasm querydisk -d $i | awk '{print $2}'`
v_minor=`/etc/init.d/oracleasm querydisk -d $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk -F, '{print $1}'`
v_major=`/etc/init.d/oracleasm querydisk -d $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk -F, '{print $2}'`
v_device=`ls -la /dev | grep $v_minor | grep $v_major | awk '{print $10}'`
echo "ASM disk $v_asmdisk based on /dev/$v_device [$v_minor $v_major]"
done
Output will be look like this:
ASM disk "DATA1" based on /dev/sdb1 [8 17]
ASM disk "DATA2" based on /dev/sdc1 [8 33]
ASM disk "DATA3" based on /dev/sdd1 [8 49]
ASM disk "DATA4" based on /dev/sde1 [8 65]
ASM disk "DATA5" based on /dev/sdf1 [8 81]
ASM disk "INDX1" based on /dev/sdg1 [8 97]
ASM disk "INDX2" based on /dev/sdh1 [8 113]
ASM disk "INDX3" based on /dev/sdi1 [8 129]
Example 2:
Please Export your correct ORACLE_HOME directory in the script
asm_mapping.sh
printf "\n%-15s %-14s %-11s %-7s\n" "ASM disk" "based on" "Minor,Major" "Size (Mb)"
printf "%-15s %-14s %-11s %-7s\n" "===============" "=============" "===========" "========="
export ORACLE_HOME=/opt/oracle/product/11.2.0.3
for i in `/etc/init.d/oracleasm listdisks`
do
v_asmdisk=`/etc/init.d/oracleasm querydisk -d $i | awk '{print $2}'| sed 's/\"//g'`
v_minor=`/etc/init.d/oracleasm querydisk -d $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk -F, '{print $1}'`
v_major=`/etc/init.d/oracleasm querydisk -d $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk -F, '{print $2}'`
v_device=`ls -la /dev | awk -v v_minor="$v_minor," -v v_major=$v_major '{if ( $5==v_minor ) { if ( $6==v_major ) { print $10}}}'`
v_size=`${ORACLE_HOME}/bin/kfod asm_diskstring='ORCL:*' disks=all | grep ${v_asmdisk} | awk '{print $2}'`
Total_size=`expr $Total_size + $v_size`
Formated_size=`echo $v_size | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'`
printf "%-15s %-14s %-11s %-7s\n" $v_asmdisk "/dev/$v_device" "[$v_minor $v_major]" $Formated_size
done
Formated_Total_size=`echo $Total_size | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'`
printf "\nTotal: %43s\n\n" $Formated_Total_size
[root@stagedb]# ./asm_mapping.sh