Mount ASM disk group fails with: ORA-15186, ORA-15025

Symptoms:

alert_+ASM.log

Tue Oct 25 13:53:04 2016

WARNING: Library 'ASM Library - Generic Linux, version 2.0.4 (KABI_V2)' does not support advanced format disks

Tue Oct 25 13:53:04 2016

ORA-15186: ASMLIB error function = [asm_open(global)], error = [1], mesg = [Operation not permitted]

ORA-15025: could not open disk "ORCL:DATA_0001"

Tue Oct 25 13:53:04 2016

ORA-15186: ASMLIB error function = [asm_open(global)], error = [1], mesg = [Operation not permitted]

ORA-15025: could not open disk "ORCL:INDX"

Tue Oct 25 13:53:04 2016

ORA-15186: ASMLIB error function = [asm_open(global)], error = [1], mesg = [Operation not permitted]

ORA-15025: could not open disk "ORCL:REDO"

Tue Oct 25 13:53:04 2016

WARNING: Read Failed. group:0 disk:0 AU:0 offset:0 size:4096

path:Unknown disk

incarnation:0xecc6a988 asynchronous result:'I/O error'

subsys:Unknown library krq:0x2b38f4156350 bufp:0x2b38f3d33000 osderr1:0x0 osderr2:0x0

IO elapsed time: 0 usec Time waited on I/O: 0 usec

WARNING: Read Failed. group:0 disk:2 AU:0 offset:0 size:4096

path:Unknown disk

incarnation:0xecc6a98a asynchronous result:'I/O error'

subsys:Unknown library krq:0x2b38f3d301a0 bufp:0x2b38f3ad8000 osderr1:0x0 osderr2:0x0

IO elapsed time: 0 usec Time waited on I/O: 0 usec

WARNING: Read Failed. group:0 disk:3 AU:0 offset:0 size:4096

path:Unknown disk

incarnation:0xecc6a98b asynchronous result:'I/O error'

subsys:Unknown library krq:0x2b38f4155b10 bufp:0x2b38f3ad6000 osderr1:0x0 osderr2:0x0

IO elapsed time: 0 usec Time waited on I/O: 0 usec

Tue Oct 25 13:53:04 2016

ERROR: no read quorum in group: required 2, found 0 disks

Tue Oct 25 13:53:04 2016

NOTE: cache dismounting (clean) group 1/0xA1065978 (DATA)

NOTE: messaging CKPT to quiesce pins Unix process pid: 25451, image: oracle@testdb.ipx.com (TNS V1-V3)

NOTE: dbwr not being msg'd to dismount

NOTE: LGWR not being messaged to dismount

NOTE: cache dismounted group 1/0xA1065978 (DATA)

NOTE: cache ending mount (fail) of group DATA number=1 incarn=0xa1065978

NOTE: cache deleting context for group DATA 1/0xa1065978

Tue Oct 25 13:53:04 2016

GMON dismounting group 1 at 2 for pid 20, osid 25451

Tue Oct 25 13:53:04 2016

ERROR: diskgroup DATA was not mounted

Tue Oct 25 13:53:04 2016

ERROR: no read quorum in group: required 2, found 0 disks

Tue Oct 25 13:53:04 2016

NOTE: cache dismounting (clean) group 2/0xA1165979 (INDX)

NOTE: messaging CKPT to quiesce pins Unix process pid: 25451, image: oracle@testdb.ipx.com (TNS V1-V3)

NOTE: dbwr not being msg'd to dismount

NOTE: LGWR not being messaged to dismount

NOTE: cache dismounted group 2/0xA1165979 (INDX)

NOTE: cache ending mount (fail) of group INDX number=2 incarn=0xa1165979

NOTE: cache deleting context for group INDX 2/0xa1165979

Tue Oct 25 13:53:04 2016

GMON dismounting group 2 at 4 for pid 20, osid 25451

Tue Oct 25 13:53:04 2016

ERROR: diskgroup INDX was not mounted

Tue Oct 25 13:53:04 2016

ERROR: no read quorum in group: required 2, found 0 disks

Tue Oct 25 13:53:04 2016

NOTE: cache dismounting (clean) group 3/0xA116597A (REDO)

NOTE: messaging CKPT to quiesce pins Unix process pid: 25451, image: oracle@testdb.ipx.com (TNS V1-V3)

NOTE: dbwr not being msg'd to dismount

NOTE: LGWR not being messaged to dismount

NOTE: cache dismounted group 3/0xA116597A (REDO)

NOTE: cache ending mount (fail) of group REDO number=3 incarn=0xa116597a

NOTE: cache deleting context for group REDO 3/0xa116597a

Tue Oct 25 13:53:04 2016

GMON dismounting group 3 at 6 for pid 20, osid 25451

Tue Oct 25 13:53:04 2016

ERROR: diskgroup REDO was not mounted

ORA-15032: not all alterations performed

ORA-15017: diskgroup "REDO" cannot be mounted

ORA-15040: diskgroup is incomplete

ORA-15017: diskgroup "INDX" cannot be mounted

ORA-15040: diskgroup is incomplete

ORA-15017: diskgroup "DATA" cannot be mounted

ORA-15040: diskgroup is incomplete

ORA-15080: synchronous I/O operation failed to read block 0 of disk 3 in disk group

ORA-15080: synchronous I/O operation failed to read block 0 of disk 2 in disk group

ORA-15080: synchronous I/O operation failed to read bloc

Cause of the Problem:

All the asmlib disks appear in ASM's v$asm_disk view, however their HEADER_STATUS=UNKNOWN

However, ASMLIB sees the disks:

[root@testdb ~]# /etc/init.d/oracleasm listdisks

DATA_0001

FLASH001

INDX

REDO

A list of the asmlib disks, show their major and minor numbers (first set of numbers from the left):

[root@testdb ~]# ls -l /dev/oracleasm/disks

total 0

brw-rw---- 1 grid asmadmin 8, 17 Oct 21 16:06 DATA_0001

brw-rw---- 1 grid asmadmin 252, 1 Oct 21 16:06 FLASH001

brw-rw---- 1 grid asmadmin 8, 1 Oct 21 16:06 INDX

brw-rw---- 1 grid asmadmin 8, 33 Oct 21 16:06 REDO

A 'cat /proc/partitions', show the asmlib devices are linked to the 'sd' devices instead the 'multipath (dm)' devices. These asmlib devices used to be linked to the multipath devices before the problem:

[root@testdb ~]# cat /proc/partitions

major minor #blocks name

105 0 1172057816 cciss/c1d0

.

.

252 0 156250976 fioa

252 1 156248158 fioa1

253 8 1757614382 dm-8

253 9 292935982 dm-9

253 10 292935824 dm-10

253 11 1757610944 dm-11

8 0 2147483648 sda

8 1 2147480811 sda1

8 16 2147483648 sdb

8 17 2147480811 sdb1

8 32 209715200 sdc

8 33 209712478 sdc1

8 48 314612736 sdd

.

.

Solution:

The asmlib file (/etc/sysconfig/oracleasm) to do with mapping asmlib devices to multipath devices, seems is not configure for multipathing:

[root@testdb ~]# cat /etc/sysconfig/oracleasm

#

# This is a configuration file for automatic loading of the Oracle

# Automatic Storage Management library kernel driver. It is generated

# By running /etc/init.d/oracleasm configure. Please use that method

# to modify this file

#

# ORACLEASM_ENABELED: 'true' means to load the driver on boot.

ORACLEASM_ENABLED=true

# ORACLEASM_UID: Default user owning the /dev/oracleasm mount point.

ORACLEASM_UID=grid

# ORACLEASM_GID: Default group owning the /dev/oracleasm mount point.

ORACLEASM_GID=asmadmin

# ORACLEASM_SCANBOOT: 'true' means scan for ASM disks on boot.

ORACLEASM_SCANBOOT=true

# ORACLEASM_SCANORDER: Matching patterns to order disk scanning

ORACLEASM_SCANORDER=""

# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan

ORACLEASM_SCANEXCLUDE=""

After ORACLEASM_SCANORDER and ORACLEASM_EXCLUDE were updated in /etc/sysconfig/oracleasm, ASM was able to display the asmlib disks with v$asm_disk.header_status=MEMBER. Thereafter, ASM was able to mount the diskgroup.

ORACLEASM_SCANORDER="mpath dm"

ORACLEASM_SCANEXCLUDE="sd"

That’s it – now simply restart ASMLib and it should be able to mount the disk group.