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.