Oracle ASM错误之--ORA-15033
系统环境:
操作系统: 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
@至此,问题被解决 !