Oracle 11.2.0.1 64bit on OL 5.6 64 bit. Non-RAC
Here's the current setup. Particular attention to group 4 -- "SMALL"
SQL> show parameter asm_diskstring
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string /dev/emcpower[d-i],/dev/fio[a-b]
SQL>
SQL> select dg.group_number grp
2 , d.disk_number dsk
3 , dg.name dg_name
4 , d.name dname
5 , d.path
6 , d.state
7 from v$asm_diskgroup_stat dg
8 , v$asm_disk_stat d
9 where dg.group_number = d.group_number
10 order by 1, 2
11 ;
GRP DSK DG_NAME DNAME PATH STATE
---------- ---------- ---------- --------------- -------------------- --------
1 0 DEV_LARGE DEV_LARGE_0000 /dev/emcpowerh NORMAL
2 0 DEV_SMALL DEV_SMALL_0000 /dev/emcpowerg NORMAL
2 1 DEV_SMALL DEV_SMALL_0001 /dev/emcpoweri NORMAL
3 0 LARGE LARGE_0000 /dev/emcpowere NORMAL
4 0 SMALL SMALL_FIOA /dev/fioa NORMAL
4 1 SMALL SMALL_FIOB /dev/fiob NORMAL
4 4 SMALL SMALL_0004 /dev/emcpowerf NORMAL
4 5 SMALL SMALL_0005 /dev/emcpowerd NORMAL
8 rows selected.
and
oracle:+ASM$ ls -l /dev/emcpower*
crw------- 1 root root 10, 59 Jun 1 09:59 /dev/emcpower
brw-rw---- 1 oracle dba 120, 48 Jun 7 14:40 /dev/emcpowerd
brw-rw---- 1 oracle dba 120, 64 Jun 7 14:41 /dev/emcpowere
brw-rw---- 1 oracle dba 120, 80 Jun 7 14:41 /dev/emcpowerf
brw-rw---- 1 oracle dba 120, 96 Jun 7 14:41 /dev/emcpowerg
brw-rw---- 1 oracle dba 120, 112 Jun 7 14:41 /dev/emcpowerh
brw-rw---- 1 oracle dba 120, 128 Jun 7 14:41 /dev/emcpoweri
brw-r----- 1 root disk 120, 144 Jun 1 09:59 /dev/emcpowerj
brw-r----- 1 root disk 120, 145 Jun 1 09:59 /dev/emcpowerj1
brw-r----- 1 root disk 120, 160 Jun 7 12:26 /dev/emcpowerk
brw-r----- 1 root disk 120, 161 Jun 7 12:26 /dev/emcpowerk1
brw-rw---- 1 oracle dba 120, 176 Jun 7 12:19 /dev/emcpowerl
oracle:+ASM$ ls -l /dev/fio*
brw-rw---- 1 oracle dba 252, 0 Jun 7 14:41 /dev/fioa
brw-rw---- 1 oracle dba 252, 16 Jun 7 14:40 /dev/fiob
brw-rw---- 1 oracle dba 252, 32 Jun 7 11:48 /dev/fioc
the fio* devices are SSD local to the server. It's my understanding from the SA that each ssd device (fio*) is bound to a disk on the SAN; in this case, fioc and emcpowerl. We just added fioc and emcpowerl (that last character is the letter L - lower case.). I need to add them to the diskgroup SMALL.
As a first step, I tried to add them to the disk discovory string. Again, the original value:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string /dev/emcpower[d-i],/dev/fio[a-b]
But when I try to modify
SQL> alter system set asm_diskstring='/dev/emcpower[d-i],/dev/emcpower[l],/dev/fio[a-c]' scope=both;
alter system set asm_diskstring='/dev/emcpower[d-i],/dev/emcpower[l],/dev/fio[a-c]' scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-15014: path '/dev/emcpowerh' is not in the discovery set
I added the '/dev/emcpower[l] as a separate string instead of simply making it 'emcpower[d-l] because I didn't want to include 'j' and 'k', which you can see above do not belong to oracle.
I can't understand why it is complaining about 'emcpowerh'. as it is in the range of values in the
existing setting, and is actually already assigned to diskgroup DEV_LARGE. One blog suggested the disk group needs to be dismounted, but I can find no supporting documentation.