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

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

Register Archive log file manually in standby Database

How to check UNDO tablespace usage and who is using more undo