云网牛站
所在位置:首页 > Linux云数据库 > 在Linux中针对物理磁盘和LUN映射Oracle ASM磁盘

在Linux中针对物理磁盘和LUN映射Oracle ASM磁盘

2019-05-20 10:37:32作者:连一续稿源:云网牛站

本文可帮助你查找哪个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

 

相关主题

在Linux中安装和使用iotop和iostat命令监视磁盘I/O活动的方法

精选文章
热门文章