“Holly Mapping, DBAtman!”
So are you finding difficulties to to map your ASM disks to physical devices?
As you may noticed, this is not a direct thing, which causes some manual work.
To save me from this, I found this great post by Alejandro Vargas, with a very nice script to make this mapping easier.
I found however, it was done for RHEL/OEL 6 and older, and I’m in OEL7. So I did some small changes to adapt it.
Anyway, decided to share as this is a great script to have handy, your Utility Belt!
# Alejandro’s script (RHEL/OEL 6 and older):
#!/bin/ksh for i in `/etc/init.d/oracleasm listdisks` do v_asmdisk=`/etc/init.d/oracleasm querydisk $i | awk '{print $2}'` v_minor=`/etc/init.d/oracleasm querydisk $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk '{print $1}'` v_major=`/etc/init.d/oracleasm querydisk $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk '{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
# Adjustments by DBAtman (RHEL/OEL7):
#!/bin/ksh for i in `/usr/sbin/oracleasm listdisks` do v_asmdisk=`/usr/sbin/oracleasm querydisk -d $i | awk '{print $2}'` v_minor=`/usr/sbin/oracleasm querydisk -d $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk -F, '{print $1}'` v_major=`/usr/sbin/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
# Example of execution:
[root@greporasrv]$ for i in `/usr/sbin/oracleasm listdisks` > do > v_asmdisk=`/usr/sbin/oracleasm querydisk -d $i | awk '{print $2}'` > v_minor=`/usr/sbin/oracleasm querydisk -d $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk -F, '{print $1}'` > v_major=`/usr/sbin/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 ASM disk "DATA01" based on /dev/sdg1 [8 97] ASM disk "DATA02" based on /dev/sdh1 [8 113] ASM disk "DATA03" based on /dev/sdi1 [8 129] ASM disk "DATA04" based on /dev/sdj1 [8 145] ASM disk "FRA01" based on /dev/sdk1 [8 161]
Na, na, na, na, na, na, na, na, na, na, na, na… DBAtman!