Getting ORA-02097 and ORA-15014 On Setting asmcmd dsset ‘AFD:*’ In Oracle RAC

I was attempting to migrate Oracle ASM UDEV-managed disks to Oracle ASM Filter Driver (AFD). Although I followed all the documented steps for migrating the disks, I encountered the following error when trying to set the disk strings:

This error occurred specifically during the step where I attempted to configure the ASM disk discovery string.

[oracle@node2 ~]$ asmcmd dsset 'AFD:*'
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-15014: path '/dev/sdd' is not in the discovery set (DBD ERROR: OCIStmtExecute)

However, below is the current status of the environment:

[root@node2 ~]# afddriverstate supported
AFD-9200: Supported
[root@node2 ~]# afddriverstate loaded
AFD-9205: AFD device driver loaded status: 'true'
[root@node2 ~]# 
[root@node2 ~]# 
[root@node2 ~]# afddriverstate version
AFD-9325:     Driver OS kernel version = 5.15.0-6.80.3.1.el8uek.aarch64.
AFD-9326:     Driver build number = 221122.0736.
AFD-9212:     Driver build version = 19.0.0.0.0 (19.18.0.0.0).
AFD-9547:     Driver available build number = 221122.0736.
AFD-9548:     Driver available build version = 19.0.0.0.0 (19.18.0.0.0).
[root@node2 ~]# afddriverstate loaded
AFD-9205: AFD device driver loaded status: 'true'

Below are the exisitng stettings :

[root@node2 ~]# asmcmd dsget
parameter:/dev/sd*
profile:/dev/sd*
[root@node2 ~]# 
SQL> show parameter asm

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups			     string
asm_diskstring			     string	/dev/sd*
asm_power_limit 		     integer	 1
asm_preferred_read_failure_groups    string
SQL> 

Before the installation, I had already labeled the disks for AFD. We can also verify the disk labels using the kfod utility.

[root@node2 ~]# kfod OP=DISKS status=TRUE disks=ASM label=TRUE dscvgroup=TRUE asm_diskstring=AFD:*
--------------------------------------------------------------------------------
 Disk          Size Header    Path                                    Disk Group         Site      Failgroup           Disk-Label User     Group   
================================================================================
   1:      20480 MB MEMBER    AFD:DATA1                                DATA                 #              #                DATA1                  
   2:      20480 MB MEMBER    AFD:DATA2                                DATA                 #              #                DATA2                  
   3:      20480 MB MEMBER    AFD:DATA3                                DATA                 #              #                DATA3                  
[root@node2 ~]# 

But asmcmd lsdsk gave the below output which is not correct :

asmcmd lsdsk
Path
/dev/sdb
/dev/sdc
/dev/sdd

Solution:

I applied the following workaround to overcome this issue. We provided both values in the asmcmd dsset command as shown below:

[root@node2 ~]# asmcmd dsset 'AFD:*','/dev/sd*'
[root@node2 ~]# asmcmd dsget
parameter:AFD:*, /dev/sd*
profile:AFD:*,/dev/sd*
[root@node2 ~]# 

Once the stack was restarted, everything came back without any issues.

After that, I reconfigured the parameter as shown below, and it was set successfully without any errors.

[root@node2 ~]# 
[root@node2 ~]# asmcmd dsset 'AFD:*'
[root@node2 ~]# 

Also the below query only showing the AFD labeled disks.

 
select group_number, name, state, header_status, mount_status, path, library
from v$asm_disk order by group_number, name;SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> ASMFD Configuration
SQL> SQL>   2  

Grp Name	       State   Header  Mount   Path		Library
--- ------------------ ------- ------- ------- ---------------- --------------------------------------------
  1 DATA1	       NORMAL  MEMBER  CACHED  AFD:DATA1	AFD Library - Generic , version 3 (KABI_V3)
  1 DATA2	       NORMAL  MEMBER  CACHED  AFD:DATA2	AFD Library - Generic , version 3 (KABI_V3)
  1 DATA3	       NORMAL  MEMBER  CACHED  AFD:DATA3	AFD Library - Generic , version 3 (KABI_V3)
SQL> 

In the above I have demonstrated how to overcome the said error.

Leave a comment

About Me

I’m Dhiraj Kumar, an Oracle RAC Database With over 15 years of experience, I’m passionate about building high-performance, scalable database solutions that support critical business operations.

📘 Check out my latest articles and insights on Medium (@dhirajengr) .