【ORA-15014】 Oracle添加ASM磁盘组报错 path is not in the discovery set

 

文章转自: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

其他资料:



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值