Thursday, November 13, 2014

Bug? Not a Bug? Dropping ASM Disk ORA-01948

Environment: Oracle Enterprise Edition 11.2.0.4.2 on OEL6.4 RH compatible Kernel

When I was recently moving disks in and out of an ASM disk group, I hit this error:

SQL> alter diskgroup fra
  2  add disk '/dev/oracleasm/disks/asmdsk-dm-198','/dev/oracleasm/disks/asmdsk-dm-199'
  3  drop disk '/dev/oracleasm/disks/asmdsk-dm-115'
  4  rebalance power 5;
alter diskgroup fra
*
ERROR at line 1:
ORA-01948: identifier's name length (34) exceeds maximum (30)

Clearly, the existing disk was longer than 30 characters:

col name for a10
col path for a50
set lines 150
set pages 1000
select name, header_status, path, length(path)
from v$asm_disk
where name like '%FRA%';

NAME       HEADER_STATUS                        PATH                                               LENGTH(PATH)
---------- ------------------------------------ -------------------------------------------------- ------------

FRA_0000   MEMBER                               /dev/oracleasm/disks/asmdsk-dm-115                           34

Finding a post on MOS community. and talking with co-workers, the preferred approach is to use the actual disk name to complete this command:

SQL> alter diskgroup fra
  2  add disk '/dev/oracleasm/disks/asmdsk-dm-198','/dev/oracleasm/disks/asmdsk-dm-199'
  3  drop disk FRA_0000
  4  rebalance power 5;

Diskgroup altered.

So, there you have it...Seems odd to me that the disk path can be longer than 30 characters but you can't drop it with the path.  I suppose by using a smaller name to reference an existing disk, perhaps less chance of fatfingering??  Who know...I learn something new every day!