Oracle 10g手工建立ASM磁盘组错误之--ORA-15201

系统环境:

操作系统:    AIX5300-08

Oracle 软件: Oracle 10gR2


错误现象:

通过AIX系统下的LV建立,ASM磁盘出现故障

查看ASM磁盘信息

[oracle@aix211 ~]$kfod

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

ORACLE_SID ORACLE_HOME                                                          

================================================================================

      +ASM /u01/app/oracle/product/10.2.0/db_1                                  

[oracle@aix211 ~]$kfod status=TRUE asm_diskstring='/dev/rlv*' disk=all

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

 Disk          Size Header    Path      

================================================================================

   1:       4096 Mb FOREIGN   /dev/rlv_asm1      //这个裸设备信息和其他lv不一致

   2:       4096 Mb CANDIDATE /dev/rlv_asm2

   3:       4096 Mb CANDIDATE /dev/rlv_asm3

   4:       4096 Mb CANDIDATE /dev/rlv_asm4

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

ORACLE_SID ORACLE_HOME                                                          

================================================================================

      +ASM /u01/app/oracle/product/10.2.0/db_1  

6、建立ASM磁盘组     

[oracle@aix211 ~]$export ORACLE_SID=+ASM

[oracle@aix211 ~]$sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 27 16:36:03 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> create diskgroup dg1

  2  normal redundancy

  3  failgroup fg1 disk '/dev/rlv_asm1'

  4  failgroup fg2 disk '/dev/rlv_asm2';

create diskgroup dg1

*

ERROR at line 1:

ORA-15018: diskgroup cannot be created

ORA-15201: disk /dev/rlv_asm1 contains a valid RDBMS file

报错信息:rlv_asm1被数据库实例占用

解决方法:

清除ASM磁盘头部信息:

[oracle@aix211 ~]$dd if=/dev/zero of=/dev/rlv_asm1 bs=8192 count=2560

2560+0 records in

2560+0 records out

[oracle@aix211 ~]$kfod status=TRUE asm_diskstring='/dev/rlv*' disk=all

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

 Disk          Size Header    Path      

================================================================================

   1:       4096 Mb CANDIDATE /dev/rlv_asm1    //此时,rlv_asm1和其他lv保持一致

   2:       4096 Mb CANDIDATE /dev/rlv_asm2

   3:       4096 Mb CANDIDATE /dev/rlv_asm3

   4:       4096 Mb CANDIDATE /dev/rlv_asm4

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

ORACLE_SID ORACLE_HOME                                                          

================================================================================

      +ASM /u01/app/oracle/product/10.2.0/db_1  

再建立磁盘组:                                

[oracle@aix211 ~]$sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 27 16:44:16 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> create diskgroup dg1

  2  normal redundancy

  3  failgroup fg1 disk '/dev/rlv_asm1'

  4  failgroup fg2 disk '/dev/rlv_asm2';

Diskgroup created.

SQL> create diskgroup rcy1

  2  normal redundancy

  3  failgroup fg1 disk '/dev/rlv_asm3'

  4  failgroup fg2 disk '/dev/rlv_asm4';

Diskgroup created.

查看磁盘组信息

SQL> select name,state from v$asm_diskgroup;

NAME                           STATE

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

DG1                            MOUNTED

RCY1                           MOUNTED

@至此,问题解决,应该是在LV的字符设备的头部出现了ASM无法处理的信息,清除头部信息后,问题解决。