Unfortunately I've found that some information in this note requires further clarification.
COMPATIBLE.ASM
The note suggests that the check is only enforced when the Disk Group has 'COMPATIBLE.ASM'='12.1.0.2' attribute set. This is incorrect and can be easily demonstrated:
SQL> select name, compatibility from v$asm_diskgroup; NAME COMPATIBILITY ------------------------------ -------------------- DATA 11.2.0.3.0 SQL> alter diskgroup data add disk '/dev/sdc'; alter diskgroup data add disk '/dev/sdc' * ERROR at line 1: ORA-15032: not all alterations performed ORA-15410: Disks in disk group DATA do not have equal size.As you can see my Disk Group has 'COMPATIBLE.ASM'='11.2.0.3.0' which did not prevent it from getting ORA-15410.
What happens if you have disks of dissimilar sizes already in the Disk Group?
Let's say you've upgraded from a previous release and your normal/high redundancy disk group had disks of dissimilar sizes in it already. What happens when you try to add a disk after the upgrade to 12.1.0.2 ASM? Some of the questions that immediately jump to mind:
- Will it always rise an error because the existing disks have different sizes forcing you to make everything of the same size first?
- Will it let you add a disk as long as the size is the same to one of the disks you already have?
- Will it let you add a disk with a new size?
SQL> select dg.name group_name, dg.type, dg.compatibility, d.name disk_name, d.total_mb from v$asm_diskgroup dg, v$asm_disk d where dg.group_number=d.group_number order by d.disk_number; GROUP_NAME TYPE COMPATIBILITY DISK_NAME TOTAL_MB ---------- ------ -------------------- ---------- ---------- DATA NORMAL 12.1.0.2.0 DATA_0000 4096 DATA NORMAL 12.1.0.2.0 DATA_0001 5120Let's add a third disk of some other size:
SQL> alter diskgroup data add disk '/dev/sdd' size 2g; Diskgroup altered. SQL> select dg.name group_name, dg.type, dg.compatibility, d.name disk_name, d.total_mb from v$asm_diskgroup dg, v$asm_disk d where dg.group_number=d.group_number order by d.disk_number; GROUP_NAME TYPE COMPATIBILITY DISK_NAME TOTAL_MB ---------- ------ -------------------- ---------- ---------- DATA NORMAL 12.1.0.2.0 DATA_0000 4096 DATA NORMAL 12.1.0.2.0 DATA_0001 5120 DATA NORMAL 12.1.0.2.0 DATA_0002 2048As you can see, as long as you have disks of dissimilar sizes already in the disk group, the check appears to be ignored. I can resize the disks as well:
SQL> alter diskgroup data resize disk DATA_0002 size 4g; Diskgroup altered. SQL> select dg.name group_name, dg.type, dg.compatibility, d.name disk_name, d.total_mb from v$asm_diskgroup dg, v$asm_disk d where dg.group_number=d.group_number order by d.disk_number; 2 3 4 5 6 7 8 GROUP_NAME TYPE COMPATIBILITY DISK_NAME TOTAL_MB ---------- ------ -------------------- ---------- ---------- DATA NORMAL 12.1.0.2.0 DATA_0000 4096 DATA NORMAL 12.1.0.2.0 DATA_0001 5120 DATA NORMAL 12.1.0.2.0 DATA_0002 4096Now what happens if I drop DATA_0001 thus making all disks to be of equal size?
SQL> alter diskgroup data drop disk DATA_0001; Diskgroup altered. SQL> alter diskgroup data add disk '/dev/sdc'; alter diskgroup data add disk '/dev/sdc' * ERROR at line 1: ORA-15032: not all alterations performed ORA-15410: Disks in disk group DATA do not have equal size.It appears that the moment the Disk Group got all disks of the same size the check got enforced.
Conclusion
Based on the tests I've demonstrated above the rules for ORA-15410 on 12.1.0.2 ASM appears to be:
- If all the disks in a Disk Group are of the same size then the check is enforced, regardless of what 'COMPATIBLE.ASM' value is.
- If a Disk Group contains disks of different sizes then the check is ignored, regardless of what 'COMPATIBLE.ASM' value is.