ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 建立ASM磁盘组报错ORA-15063

建立ASM磁盘组报错ORA-15063

原创 Linux操作系统 作者:yangtingkun 时间:2009-10-22 23:26:14 0 删除 编辑

在为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 f=/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磁盘组没有办法清除了,只能扔在这里。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-617242/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10404793