系统:WINDOWS 2008 R2 企业版
数据库:11.2.0.1 RAC
在对数据库进行写入和创建表空间的时候,数据库会报ORA-15260 diskgroup space exhausted
--查看ASM磁盘组信息
SQL> select GROUP_NUMBER,DISK_NUMBER,MOUNT_STATUS,REDUNDANCY,TOTAL_MB,FREE_MB from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MOUNT_STATUS REDUNDANCY TOTAL_MB FREE_MB
------------ ----------- ------------ ---------- ---------- ----------
1 0 CACHED UNKNOWN 1992297 1942903
1 1 CACHED UNKNOWN 1992297 1942893
1 2 CACHED UNKNOWN 1562382 1513253
1 3 CACHED UNKNOWN 1032 1
1 4 CACHED UNKNOWN 1032 11
1 5 CACHED UNKNOWN 1032 36
可以看到磁盘3-5存储空间已经耗尽,由于ASM采用的是条带化的存储方式,虽然说0,1,2三块磁盘还有剩余空间,但存储整体已无法扩展。这是一个刚装了没多久的数据库,可以看到,存储还是按照10g的方式划分的,但安装人员在安装的时候把6块盘均划为了一个磁盘组+data,将OCR和VOTING DISK及数据文件放在一起了。由于在11gR2中oracle推出了ACFS文件系统,支持了对OCR和VOTING disk的存储,但实际中安装中还是不提倡这么安装。没办法,故障处理吧。
sqlplus / as sysasm
alter diskgroup DATA rebalance power 6;
重现调配一下磁盘组中的存储分配,实现共享存储的均匀分配,貌似可以写入了,但一段时间后还是不行!3-5又接近写满。下狠招了!将这3个磁盘从磁盘组中脱离。
alter diskgroup data drop disk ‘\\.\ORCLDISK3’; --可以参照V$ASM_DISK 中PATH字段的内容
--依次脱离了3块盘后的查看ASM状态
SQL> select GROUP_NUMBER,DISK_NUMBER,STATE,MOUNT_STATUS,REDUNDANCY,TOTAL_MB,FREE_MB,VOTING_FILE from v$asm_disk;
GROUP_NUMBER DISK_NUMBER STATE MOUNT_S REDUNDA TOTAL_MB FREE_MB V
------------ ----------- -------- ------- ------- ---------- ---------- -
1 0 NORMAL CACHED UNKNOWN 1992297 1891737 Y
1 1 NORMAL CACHED UNKNOWN 1992297 1891737 Y
1 2 NORMAL CACHED UNKNOWN 1562382 1461826 Y
1 3 DROPPING CACHED UNKNOWN 1032 998 Y
1 4 DROPPING CACHED UNKNOWN 1032 998 Y
0 1 NORMAL CLOSED UNKNOWN 0 0 N
第3和4块盘一直是DROPPING 状态的,进一步查看DATA磁盘组是高冗余配置的,至少需要5块磁盘,安装的这哥们真坑爹啊!还好目前可以创建表空间数据文件了。
一切貌似看起来也很正常,为了长久之计,可以将OCR和VOTING DISK文件进行重新配置新建磁盘组转移到ACFS文件系统上,然后重新注册集群信息。