Oracle ASM错误之--ORA-15033

2014-11-24 17:16:31 · 作者: · 浏览: 0

系统环境:


操作系统: AIX 5.3.8


Oracle: Oracle 10gR2


故障现象:


SQL> create diskgroup datafile


2 normal redundancy


failgroup fg1 disk '/dev/rlv_data1'


3 4 failgroup fg2 disk '/dev/rlv_data2';


create diskgroup datafile


*


ERROR at line 1:


ORA-15018: diskgroup cannot be created


ORA-15033: disk '/dev/rlv_data2' belongs to diskgroup "RECOVER"


ORA-15033: disk '/dev/rlv_data1' belongs to diskgroup "DATA"


SQL> select group_number,name,state from v$asm_diskgroup;


GROUP_NUMBER NAME STATE


------------ ------------------------------ -----------


0 REDO DISMOUNTED


0 ARCH DISMOUNTED


0 DATA DISMOUNTED


0 RECOVER DISMOUNTED


故障原因:


[oracle@aix213 dbs]$lsvg -l asmvg


asmvg:


LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT


lv_data1 jfs 64 64 1 open/syncd N/A


lv_data2 jfs 64 64 1 open/syncd N/A


asmredo2 jfs 32 32 1 open/syncd N/A


[oracle@aix213 dbs]$lspv


hdisk1 00c6d0ef0395eef2 rootvg active


hdisk0 0006816a72287441 asmvg active


应该是在AIX的ODM中,rlv_data1和rlv_data2,已经属于另外的磁盘组。


解决方法:


1)清理raw头部信息


[root@aix213 /]#dd if=/dev/zero of=/dev/rlv_data1 bs=8k count=256


256+0 records in


256+0 records out


[root@aix213 /]#dd if=/dev/zero of=/dev/rlv_data2 bs=8k count=256


256+0 records in


256+0 records out



2)重新建立ASM DISKGROUP


[oracle@aix213 dbs]$sqlplus / as sysdba


SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 24 11:44:29 2014


Copyright (c) 1982, 2005, Oracle. All rights reserved.


Connected to:


Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production


With the Partitioning, OLAP and Data Mining options


SQL> select name ,state from v$asm_diskgroup;


NAME STATE


------------------------------ -----------


REDO DISMOUNTED


ARCH DISMOUNTED


清理raw头部信息后data和recover diskgroup自动被删除 !


SQL> create diskgroup datafile


2 normal redundancy


3 failgroup fg1 disk '/dev/rlv_data1'


4 failgroup fg2 disk '/dev/rlv_data2';


Diskgroup created.


磁盘组创建成功 !



3)验证


SQL> select name ,state from v$asm_diskgroup;


NAME STATE


------------------------------ -----------


REDO DISMOUNTED


ARCH DISMOUNTED


DATAFILE MOUNTED


SQL> alter diskgroup redo mount;


Diskgroup altered.


SQL> alter diskgroup arch mount;


Diskgroup altered.


SQL> select name ,state from v$asm_diskgroup;


NAME STATE


------------------------------ -----------


REDO MOUNTED


ARCH MOUNTED


DATAFILE MOUNTED



@至此,问题被解决 !