Check current ASM diskgroup status $ asmcmd lsdg -g DATA Inst_ID State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name 1 MOUNTED NORMAL Y 512 4096 1048576 15342 9454 5114 -386 1 N DATA/ 3 MOUNTED NORMAL Y 512 4096 1048576 15342 9454 5114 -386 1 N DATA/ 2 MOUNTED NORMAL Y 512 4096 1048576 15342 9454 5114 -386 1 N DATA/ Check disk size: SQL> select name, os_mb, failgroup from v$asm_disk where name like 'DATA%'; NAME OS_MB FAILGROUP --------------- ---------- ------------------------------ DATA_0002 5114 DATA_0002 DATA_0003 5114 DATA_0003 DATA_0000 5114 DATA_0000 REQUIRED_MIRROR_FREE_MB value in V$ASM_DISKGROUP indicates how much free space is required in an ASM disk group to restore redundancy after failure of an ASM disk or ASM failure group. USABLE_FILE_MB value indicates how much space is available in an ASM disk group considering the redundancy level of the disk group. --> Here we need 5114 Mbyte ( == our disk size ) space if a disk of our diskgroup fails. But free space is only 9454 / 2 = 4727 MByte ( Normal Redundacy ) . We end up in missing 5114 - 4724 = 390 Mbytes which means Normal Redundancy can not maintained for this diskgroup after an ASM disk or ASM failgroup failure. Summary : - 3 Disks each 5 Gbyte results that we can use for Normal redundancy : (3 x 5 Gbyte ) / 2 = 7,5 GByte - if we have a disk failure we need 5.1 Gbyte space but we only have 4.7 GByte available to maintain 2-way mirror --> this results that Usable_file_MB reports a negative value - In above configuration we should add some disks asap Generic ASM calculation: USABLE_FILE_MB = (FREE_MB – REQUIRED_MIRROR_FREE_MB) / [2|3]
Reference:
http://prutser.wordpress.com/2013/01/03/demystifying-asm-required_mirror_free_mb-and-usable_file_mb/