文章转自:http://blog.itpub.net/29475508/viewspace-1180123/
关于oracle asm 添加磁盘组时
ORA-15014:path '/dev/xxx ' is not in the discovery set 问题
实验环境:
Red Hat Enterprise Linux Server release 5.4
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0
使用ASMCMD添加新的ASM磁盘组
ASMCMD> mkdg
报错信息如下:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification '/dev/oracleasm/disks/ASMDISK06' matches no disks
ORA-15014: path '/dev/oracleasm/disks/ASMDISK06' is not in the discovery set
ORA-15031: disk specification '/dev/oracleasm/disks/ASMDISK05' matches no disks
ORA-15014: path '/dev/oracleasm/disks/ASMDISK05' is not in the discovery set (DBD ERROR: OCIStmtExecute)
检查发现 磁盘已经挂载到oracleasm文件系统
[root@OL54.damon.net:/root]$ ls -l /dev/oracleasm/disks
total 0
brw-rw---- 1 oracle dba 8, 17 Jun 10 22:19 ASMDISK01
brw-rw---- 1 oracle dba 8, 33 Jun 10 22:19 ASMDISK02
brw-rw---- 1 oracle dba 8, 49 Jun 10 22:19 ASMDISK03
brw-rw---- 1 oracle dba 8, 65 Jun 10 22:19 ASMDISK04
brw-rw---- 1 oracle dba 8, 81 Jun 10 22:28 ASMDISK05
brw-rw---- 1 oracle dba 8, 97 Jun 10 22:28 ASMDISK06
其中ASMDISK01、ASMDISK02、ASMDISK03、ASMDISK04 是之前创建磁盘组 "DATA",正常使用中
ASMCMD> lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED NORMAL N 512 4096 1048576 20456 16196 5114 5541 0 N DATA/
ASMDISK05、ASMDISK06用来创建新的磁盘组"DATA01"
搜索 ORA-15014, 常见解决方案是设置asm_diskstring值
按此方法进行设置仍然报错ORA-15014
sys@+ASM>show parameter asm_diskstring;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string
sys@+ASM>
sys@+ASM>alter system set asm_diskstring='/dev/oracleasm/disks/*';
alter system set asm_diskstring='/dev/oracleasm/disks/*'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-15014: path 'ORCL:ASMDISK01' is not in the discovery set
从报错信息中看出 当前处于正常MOUNTED状态的磁盘组DATA中第一块磁盘ASMDISK01 路径是'ORCL:ASMDISK01'
并不是/dev/oracleasm/disks/ASMDISK01
于是使用此路径添加
ASMCMD> mkdg
无报错信息,添加后lsdg查看ASM磁盘组 新磁盘组DATA01 已创建成功
ASMCMD> lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED NORMAL N 512 4096 1048576 20456 16176 5114 5531 0 N DATA/
MOUNTED EXTERN N 512 4096 1048576 2038 1986 0 1986 0 N DATA01/
ASMCMD>
**********************************************************************************************
关于PATH问题,在v$asm_disk数据字典中可查
sys@+ASM>select path from v$asm_disk;
PATH
-----------------------------------------------------------
ORCL:ASMDISK01
ORCL:ASMDISK02
ORCL:ASMDISK03
ORCL:ASMDISK04
ORCL:ASMDISK05
ORCL:ASMDISK06
6 rows selected.
实验环境是Oracle Linux 5.4,在安装ASM组件时,曾安装oracleasmlib
[root@OL54.damon.net:/root]$ rpm -qa | grep asm
oracleasmlib-2.0.4-1.el5
oracleasm-support-2.1.8-1.el5
oracleasm-2.6.18-164.el5-2.0.5-1.el5
查询ORACLE 11G 官方文档
在【Administering Oracle ASM Disk Groups】中,See Also,有关于ASMlib的链接:
http://www.oracle.com/technetwork/topics/linux/asmlib/index-101839.html
在【Tips on Installing and using the software】中,有关于 discovery strings 的介绍
http://www.oracle.com/technetwork/server-storage/linux/install-082632.html
Discovery Strings for Linux ASMLib
ASMLib uses discovery strings to determine what disks ASM is asking for. The generic Linux ASMLib uses glob strings. The string must be prefixed with "ORCL:". Disks are specified by name. A disk created with the name "VOL1" can be discovered in ASM via the discovery string "ORCL:VOL1". Similarly, all disks that start with the string "VOL" can be queried with the discovery string "ORCL:VOL*". Disks cannot be discovered with path names in the discovery string. If the prefix is missing, the generic Linux ASMLib will ignore the discovery string completely, expecting that it is intended for a different ASMLib. The only exception is the empty string ( ""), which is considered a full wildcard. This is precisely equivalent to the discovery string "ORCL:*".
generic:一般的
be prefixed with: 以xxx作为前缀
从以上信息可以看出,ASMLib使用发现字符串来判断ASM正在请求什么磁盘,而一般的linux ASMlib,使用glob 字符串作为discovery strings。这些字符串必须以"ORCL:"作为前缀。
O(∩_∩)O
其他资料: