Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1037825
  • 博文数量: 159
  • 博客积分: 3063
  • 博客等级: 中校
  • 技术积分: 2703
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-01 01:51
文章分类

全部博文(159)

文章存档

2013年(48)

2012年(111)

分类: Oracle

2013-07-04 16:09:45


在为RAC环境创建磁盘组时,碰到了这个错误。

详细错误信息为:

ORA-15032:not all alterations performed
ORA-15063:ASM discovered an insufficient number of disks for diskgroup "DATA"

这个错误信息很奇怪,检查Oracle文档对这个错误信息的描述:

ORA-15063: ASM discovered an insufficient number of disks for diskgroup "string"
Cause: ASM was unable to find a sufficient number of disks belonging to the diskgroup to continue the operation.
Action: Check that the disks in the diskgroup are present and functioning, that the owner of the ORACLE binary has read/write permission to the disks, and that the ASM_DISKSTRING initialization parameter has been set correctly. Verify that ASM discovers the appropriate disks by querying V$ASM_DISK from the ASM instance.

设置了外部验证方式,因此给ASM磁盘组添加了一块1T的裸设备。在执行DBCA操作前,也在两个节点上分别对裸设备进行了授权。

那么是什么问题导致了这个错误产生呢。查询了metalink,没有有价值的信息。

利用DBCA再次尝试维护ASM磁盘组,发现报错的DATA磁盘组,处于DISMOUNT状态,如果这时尝试添加磁盘到磁盘组,则报错如下:

ORA-15032:not all alterations performed
ORA-15001:diskgroup "DATA" does not exist or is not mounted

而如果直接MOUNT磁盘组DATA,则会报错:

ORA-15032:not all alterations performed
ORA-15063:ASM discovered an insufficient number of disks for diskgroup "DATA"

似乎进入到一个错误的死循环中。

再次检查这个错误信息,由于显然向磁盘组添加一块盘报错,那么很有可能这块盘本身存在问题。

由于此前进行过orion的测试,向裸设备中拷贝过文件,可能是由于磁盘头信息有内容,导致ASM实例不会直接覆盖裸设备上的内容。

尝试用dd命令清除裸设备上的内容:

root@ser1 # dd if=/dev/zero of=/dev/rdsk/emcpower5g bs=8192 count=123255
123255+0 records in
123255+0 records out

其中bscount的大小是根据当时存放到裸设备上文件的大小计算得到的。

下面用DBCA再次管理ASM磁盘组,发现仍然无法跳出刚才碰到的错误死循环。看来ASM实例的管理功能还需要进一步增强。

尝试新建一个磁盘组MEMBER,仍然加载这个裸设备磁盘,这次操作成功了。

DBCA中无法清除磁盘组。而连接到ASM实例,发现无法删除磁盘组DATA,错误信息仍然是:

bash-3.00$ export ORACLE_SID=+ASM1
bash-3.00$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 8 14 10:31:33 2009

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

连接到
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> set pages 100 lines 120
SQL> select group_number, name, state, total_mb, free_mb
2 from v$asm_diskgroup;

GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB
------------ ------------------------------ ---------------------- ---------- ----------
1 MEMBER MOUNTED 1048562 1048443
0 DATA DISMOUNTED 0 0

SQL> drop diskgroup data;
drop diskgroup data
*
 1 行出现错误:
ORA-15039: ??????
ORA-15001: ??? "DATA" ????????


SQL> alter session set nls_language = american;

Session altered.

SQL> drop diskgroup data;
drop diskgroup data
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15001: diskgroup "DATA" does not exist or is not mounted

由于10g中还没有drop diskgroup force的语法,因此这个data磁盘组没有办法清除了,只能扔在这里。



阅读(1932) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~