Email: service@parnassusdata.com 7 x 24 online support!
Oracle 无法Mount 或Drop 一个磁盘组,生成错误Ora-15032和 Ora-15063 ORA-15032: 未执行全部变更操作 ORA-15063: ASM 发现磁盘组 "" 的磁盘数目不足
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
ORA-15063: ASM 发现磁盘组 "" 的磁盘数目不足
适用于:
Oracle Database – Enterprise Edition – 版本10.1.0.2 到10.2.0.1 [Release 10.1 to 10.2]
本文信息适用于任何平台。
***在11-Jul-2014检查相关性***
症状
无法使磁盘组被mount或drop。
SQL> ALTER DISKGROUP CIF_RECO_01 mount;
ALTER DISKGROUP CIF_RECO_01 mount
*
在行1的错误:
ORA-15032: not all alterations performed
ORA-15063: diskgroup “CIF_RECO_01” lacks quorum of 1 PST disks; 0 found
主要问题是需要使这个磁盘组被drop以在其他磁盘组使用磁盘。
原因
Drop一个磁盘组需要它被mount。如果磁盘组无法被mount,则你需要覆盖磁盘的第一个块,使其不像是你想要drop的磁盘组中的一个磁盘。有几种方法来执行。这些都很危险,因为如果你对磁盘输入了错误的设备名称,就会摧毁一个运行中的磁盘组。
1. 你能使用‘dd’ Unix命令将磁盘头上的zero块写入block 0。
2. 你只要使用FORCE 选项将磁盘添加到新的磁盘组。
3. 你能以FORCE选项使用旧磁盘组中 的所有磁盘来创建新磁盘组。然后,新磁盘组能被 mount并drop。该方法相较第二个方法的唯一优势是FORCE add都一次性完成,从而添加新磁盘组能在一段时间后完成,而无需使用FORCE的惯例。
解决方案
以下步骤是一种方法。
1. 创建一个新的磁盘组,FORCE’ing 磁盘到新的磁盘组。一旦磁盘被 force到新磁盘组,原始的磁盘组(这里是CIF_RECO_01) 不在存在。
SQL> create diskgroup TEST_DG external redundancy
disk ‘/dev/raw/raw1’ FORCE, ‘/dev/raw/raw3’ FORCE;
注: 之前的方法是破坏性的操作,因为‘FORCE’ 选项会清理所有之前的ASM 元数据并使用有关新磁盘组的新的ASM元数据初始化磁盘,因此位于相关磁盘的所有之前的数据结构(在 CREATE DISKGROUP语句中指定)会被清除。出于这个原因,如果你不能确定列出的磁盘,则请用Oracle Support 打开一个Service Request (SR) ,我们乐意帮助你完成任务。
2. 验证mounted。
SQL> select name, state from v$asm_diskgroup;
3. Drop 新的磁盘组来释放磁盘空间。
SQL> drop diskgroup TEST_DG;
4. 验证磁盘头
SQL> select name,path,header_status from v$asm_disk;
磁盘的header_status应为FORMER,表明磁盘曾经是磁盘组的一部分,且可能使用ALTER DISKGROUP语句被添加到新的磁盘组
5. 然后添加磁盘到 CIF_DATA_02,即预期的磁盘组。
SQL> alter diskgroup CIF_DATA_02 add disk ‘/dev/raw/raw1’, ‘/dev/raw/raw3’;