建立ASM磁碟組報錯ORA-15063

yangtingkun發表於2009-10-22

在為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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章