Oracle 无法Mount 或Drop 一个磁盘组,生成错误Ora-15032和 Ora-15063

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]

 

 

适用于:

Oracle Database – Enterprise Edition – 版本10.1.0.2 10.2.0.1 [Release 10.1 to 10.2]

本文信息适用于任何平台。
***11-Jul-2014检查相关性***

症状

无法使磁盘组被mountdrop

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选项使用旧磁盘组中 的所有磁盘来创建新磁盘组。然后,新磁盘组能被 mountdrop。该方法相较第二个方法的唯一优势是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’;


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *