drop asm 磁盘和磁盘组时提示ORA-15001和ORA-15042等系列错误

来源:互联网 发布:火星潮牌淘宝 编辑:程序博客网 时间:2024/04/28 18:46

在11g rac环境下执行DBCA建库遇到了错误,由于数据库文件是存放在ASM磁盘组DATA上,DATA磁盘组包含DISK2和DISK3两块ASMlib磁盘,原以为需要清空DATA磁盘组才可以重装,于是就执行dd if=/dev/zero of=/dev/oracleasm/disks/DISK3,后面得知不需要清空,于是中断了dd命令,但加载DATA磁盘组时提示磁盘丢失,也无法正常删除磁盘和磁盘组


[grid@RAC1 ~]$ oerr ora 15042

15042, 00000, "ASM disk\"%s\" is missing from group number \"%s\" "

// *Cause: The specified disk, which is a necessary part of a diskgroup,

//         could not be found on the system.

// *Action: Check the hardwareconfiguration.

//

只好强制删除DATA磁盘组

drop diskgroup DATA FORCE including contents;

执行asmca重新创建DATA磁盘组并且加载,还是提示ORA-15042:ASM disk "1" is missing from group number "2"

执行oracleasm listdisks发现少了ASMlib磁盘DISK3

[root@RAC1 ~]# /usr/sbin/oracleasm listdisks

DISK1

DISK2

DISK4

DISK5

重新创建ASMlib磁盘DISK3,提示错误

[root@RAC1 disks]# /usr/sbin/oracleasm createdisk DISK3 /dev/sdd1

Device "/dev/sdd1" is already labeled for ASM disk ""

[root@RAC1 disks]# /usr/sbin/oracleasm querydisk /dev/sdd1
Device "/dev/sdd1" defines a device with no label.

cat /var/log/oracleasm
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Disk "DISK1" does not exist or is not instantiated
Instantiating disk "DISK1"
Disk "DISK2" does not exist or is not instantiated
Instantiating disk "DISK2"
Disk "DISK4" does not exist or is not instantiated
Instantiating disk "DISK4"
Disk "DISK5" does not exist or is not instantiated
Instantiating disk "DISK5"
Device "/dev/sdd1" defines a device with no label

执行service oracleasm deletedisk /dev/sdd1删除再创建也不行

[root@RAC1 disks]# service oracleasm deletedisk /dev/sdd1

Removing ASM disk "/dev/sdd1":                             [  OK  ]

[root@RAC1 disks]# /usr/sbin/oracleasm createdisk DISK3 /dev/sdd1

Device "/dev/sdd1" is already labeled for ASM disk ""

谷歌了半天,终于找到答案,原因在于一开始执行了dd命令,导致DISK3磁盘header status信息发生改变,ASM实例才会提示说磁盘丢失

执行dd命令清除sdd1的header信息

dd if=/dev/zero of=/dev/sdd1

[root@RAC1 disks]# /usr/sbin/oracleasm querydisk /dev/sdd1

Device "/dev/sdd1" is not marked as an ASM disk

重新创建ASMlib磁盘DISK3

[root@RAC1 disks]# /usr/sbin/oracleasm createdisk DISK3 /dev/sdd1
Writing disk header: done
Instantiating disk: done

[root@RAC1 disks]# /usr/sbin/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4
DISK5

执行asmca创建DATA磁盘组并且加载正常。

0 0