v$asm_disk中free_mb低于300m导致加盘报ora-15041

背景:

某项目扩容加盘到磁盘组中报磁盘组空间耗尽的错误,如下

v$asm_disk中free_mb低于300m导致加盘报ora-15041_第1张图片

明明是加盘,却报空间不足的错误,令人费解

报错的磁盘组为normal冗余,且Usable_file_MB为负,且Free_MB剩余很少或为0

v$asm_disk中free_mb低于300m导致加盘报ora-15041_第2张图片

问题排查:

经查询MOS(Doc ID 1367078.1),发现asm管理的磁盘rebalance过程中也需要一些空间,每块磁盘free_mb要大于300才有可能添加成功

查询当前磁盘组的free_mb,发现盘的free_mb的大小均为0

select dg.name,dk.name,dk.header_status,dk.state,dk.mode_status,dk.failgroup,dk.os_mb,dk.total_mb,dk.free_mb,dk.path from v$asm_disk dk,v$asm_diskgroup dg where dk.GROUP_NUMBER=dg.GROUP_NUMBER and dg.name='RBDATA02' order by dk.group_number,dk.failgroup,dk.path;

v$asm_disk中free_mb低于300m导致加盘报ora-15041_第3张图片 问题解决:

在线move此磁盘组中的一些数据文件到其他磁盘组中,此磁盘组释放一些空间出来

alter database move datafile '+RBDATA02/RB/tab_rbinvoice_006.dbf' to '+RBARCH/RB/tab_rbinvoice_006.dbf';

等到所有磁盘的free_mb大于300MB时可以重新添加

问题总结:

asm管理的存储rebalance过程中需要所有磁盘有剩余空间,且rebalance不一定是完全平均的,如果有的磁盘剩余太小,即使整个磁盘组剩余足够的空间,add datafile等过程也可能因短板效应失败

你可能感兴趣的:(#,rac,数据库,asm,free_mb,exhausted)