Tuesday, July 13, 2010

ORA-15063: ASM discovered an insufficient number of disks for diskgroup

After sudden restart of DB Server, interesting issue happened with ASM instance today.

OS: Win2003 32 bit
Oracle: 10.2.0.1

SQL> startup
ASM instance started
...
ORA-15032: not all alterations performed
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "RECO"
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"



Error description from doc:

ORA-15063: ASM discovered an insufficient number of disks for diskgroup "string"
Cause: ASM was unable to find a sufficient number of disks belonging to the diskgroup to continue the operation.
Action: Check that the disks in the diskgroup are present and functioning, that the owner of the ORACLE binary has read/write permission to the disks, and that the ASM_DISKSTRING initialization parameter has been set correctly. Verify that ASM discovers the appropriate disks by querying V$ASM_DISK from the ASM instance.

SQL> select 1 from v$asm_disk;
no rows selected.

Interesting...

SQL> show parameter asm_disk

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups                       string      RECO, DATA
asm_diskstring                       string      

Checking alert log:

RBAL started with pid=9, OS id=5352
GMON started with pid=10, OS id=5360
Mon Jul 13 09:50:14 2010
SQL> ALTER DISKGROUP ALL MOUNT
Mon Jul 13 09:50:16 2010
NOTE: cache registered group DATA number=1 incarn=0x7337063e
NOTE: cache registered group RECO number=2 incarn=0x7a07063f
Mon Jul 13 09:50:17 2010
ERROR: no PST quorum in group 1: required 2, found 0
Mon Jul 13 09:50:17 2010
NOTE: cache dismounting group 1/0x7337063E (DATA)
NOTE: dbwr not being msg'd to dismount
ERROR: diskgroup DATA was not mounted
Mon Jul 13 09:50:17 2010
ERROR: no PST quorum in group 2: required 2, found 0
Mon Jul 13 09:50:17 2010
NOTE: cache dismounting group 2/0x7A07063F (RECO)
NOTE: dbwr not being msg'd to dismount
ERROR: diskgroup RECO was not mounted

Well, I decided to set ASM_DISKSTRING parameter value to null (altough it was set to '') and bounce ASM instance. It causes all disks are checked to see if they are candidates. If it does not help, then the disks are no longer being presented by the OS correctly, or they are no longer recognized as ASM disks by ASM.

SQL> alter system set asm_diskstring='' scope=spfile;
System altered.

SQL> shutdown immediate;
ORA-15100: invalid or missing diskgroup name
ASM diskgroups dismounted
ASM instance shutdown

SQL> startup
ASM instance started
...
ASM diskgroups mounted

Yes, Oracle did his job. Although this can be accepted as solution, but reason is not so clear for me yet :(

I will try to update this article if I find something useful.

Good luck!

2 comments:

AhmedB said...

Hi,

I faced the same problem. But restarting the instance after setting the parameter didn't address the issue.

What other options can I do?

Thanks in advance.

Teymur Hajiyev said...

Hi, Ahmed.

Have you tried to set ASM_DISKSTRING='' ?