ORA-15032 , ORA-15017 , ORA- 15040 , ASM Disk-group not found!!

Hello friends, this is something fun which I came across, while trying to troubleshoot an ASM issue.
Usually we know that the diskgroups are an important entity of the ASM infrastructure and working of the database depends a lot upon them.
This particular issue was seen on the standalone ASM database. The ASM diskgroup was nowhere to be found while querying the v$asm_diskgroup and v$asm_disks dynamic tables.

Cause?

There was a change in the hostname of the server, we had to reconfigure the Oracle restart.
Post the changes, we ran the crsctl stat res -t command to check the status of the resources.

--------------------------------------------------------------------------------NAME           TARGET  STATE        SERVER                   STATE_DETAILS   
-----------------------------------------------------------------------------   Local Resources   
-------------------------------------------------------------------------------ora.asm                  ONLINE  ONLINE       testdev03                Started   ora.ons                  OFFLINE OFFLINE      testdev03   
--------------------------------------------------------------------------------Cluster Resources   
-------------------------------------------------------------------------------ora.cssd         
1        ONLINE  ONLINE       testdev03   
ora.diskmon         
1        OFFLINE OFFLINE   
ora.evmd         
1        ONLINE  ONLINE       testdev03

Although the ASM is started, we can enter the asmcmd but the mount-points were not visible and mounting the disk-groups manually fails.

SYS@+ASM> alter diskgroup DATA mount;
alter diskgroup DATA mount*ERROR at line 1:ORA-15032: not all alterations performed ORA-15017: diskgroup "DATA" cannot be mounted
ORA-15040: diskgroup is incomplete


Check the asm_diskstring parameter,
show parameter asm_diskstring. If the output is ORCL:*
So to overcome this issue, we have to change the asm_diskstring parameter.

cd $GRID_HOME/bin
kfod asm_diskstring='/dev/oracleasm/disks/*' disks=all
--------------------------------------------------------------------------------
Disk          Size Path                                    User    Group
================================================================================
  1:    204800 Mb /dev/oracleasm/disks/ASMDISK01          oracle  dba
  2:    204800 Mb /dev/oracleasm/disks/ASMDISK02          oracle  dba
  3:    204800 Mb /dev/oracleasm/disks/ASMDISK03          oracle  dba
  4:    204800 Mb /dev/oracleasm/disks/ASMDISK04          oracle  dba
  5:    204800 Mb /dev/oracleasm/disks/ASMDISK05          oracle  dba
  6:    204800 Mb /dev/oracleasm/disks/ASMDISK06          oracle  dba
  7:    204800 Mb /dev/oracleasm/disks/ASMDISK07          oracle  dba
  8:    204800 Mb /dev/oracleasm/disks/ASMDISK08          oracle  dba
  9:    204800 Mb /dev/oracleasm/disks/ASMDISK09          oracle  dba
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================
      +ASM /u01/app/oracle/product/19.0.0.0/grid_home

Log in to the ASM instance as sysasm and set the asm_diskstring to what it was:

SQL> alter system set asm_diskstring='/dev/oracleasm/disks/*' scope=memory;

System altered.

SQL> select name, state from v$asm_diskgroup;

NAME                           STATE
------------------------------ -----------
DATA                           DISMOUNTED
FRA                            DISMOUNTED

SQL> alter diskgroup DATA mount;

Diskgroup altered.

SQL> alter diskgroup FRA mount;

Diskgroup altered.

SYS@+ASM> select name, state from v$asm_diskgroup;

NAME                           STATE
------------------------------ -----------
DATA                           MOUNTED
FRA                            MOUNTED

This is how the issue got resolved and the disks were visible again.

Comments

Popular posts from this blog

Register Archive log file manually in standby Database

Step by Step: How to troubleshoot a slow running query in Oracle

OCR & OLR in RAC