ASM normal模式磁盘大小相差悬殊导致建库失败
Mar012013
昨天和老杨一起到客户现场去巡检,客户让帮他们解决个问题,客户在ASM文件 系统中创建ORACLE报错,ORA-01501,ORA-00301,ORA-17502,ORA-15041错误,ORA-15041错误是磁盘空间耗尽导致,可是检查客户的磁盘组有200多G的空间,为什么会说磁盘空间耗尽呢?
ORA-01501:CREATE DATABASE failed ORA-00301:error in ading log file '+DATA' - file connot be created ORA-17502:ksfdcre:4 Failed to create file +DATA ORA-15041:diskgroup space exhausted
而检查V$ASM_DISKGROUP却发现有200多G的可用空间,问客户客户也说他们的磁盘组有200G,通过V$ASM_DISK视图进一步查看,发现DATA磁盘组有2个ASM磁盘,其中1个200G,1个2G,并且DATA磁盘组是NORMAL模式,由于2块磁盘NORMAL模式的磁盘组,这两块磁盘是镜像关系,所以客户的DATA磁盘组可用空间其实只有2G,客户在建库时指定了6个日志组,每个成员2G,这样在建库时就遇到ORA-15041错误。
下面是在虚拟机上模拟客户故障的实验,本文只摘取关键内容,中间过程省略。
1.创建DATA磁盘组,NORMAL模式,一块2G的磁盘,一块20G的磁盘。
2.在DATA磁盘组上创建数据库,并调整redo日志大小为500M每个,如下图:
从上图可见,数据文件+redo日志文件总大小大于2G。
3.在创建文件时报ORA-15041错误。
可见两块不一样大小磁盘组成的NORMAL模式的ASM磁盘组,可用容量受限于容量小的磁盘。
4.解决方法,将容量小的磁盘删掉,或者重建外部冗余模式的磁盘组。