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

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

服务热线 : 13764045638    QQ号:47079569    邮箱:service@parnassusdata.com

 

Oracle 数据库企业版 - 10.2.0.5 及更高版本 Linux x86-64

症状

1] ASMlib 磁盘用于ASM磁盘和asm_diskstring - /dev/oracleasm/disks/*

2] 由于丢失一个磁盘,一个ASM磁盘组无法安装。

ASM alert.log中的例子

ERROR: diskgroup ORADATA was not mounted ORA-15032: not all alterations performed ORA-15040: diskgroup is incomplete ORA-15042: ASM disk "1" is missing from group number "3" ERROR: ALTER DISKGROUP ORADATA MOUNT /* asm agent *//* {2:28028:2} */

变化

HDLM 驱动程序已安装,系统已经重新启动

原因

ASMLIB标签丢失,但标签丢失的根本原因尚不明确。

举例 /dev/sdo1 should have ORADATA2 lable in kfdhdb.driver.provstr column below.

$ kfed read /dev/sdo1

/dev/sdo1 kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 0 ; 0x004: blk=0 kfbh.block.obj: 2147483649 ; 0x008: disk=1 kfbh.check: 4287780181 ; 0x00c: 0xff925555 kfbh.fcn.base: 0 ; 0x010: 0x00000000 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfdhdb.driver.provstr: ORCLDISK ; 0x000: length=8                   <<<<<<<<<<<<<<---------- Label missing, this should be ORCLDISKORADATA2 kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000 kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000 kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000 kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000 kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000 kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000 kfdhdb.compat: 186646528 ; 0x020: 0x0b200000 kfdhdb.dsknum: 1 ; 0x024: 0x0001 kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER kfdhdb.dskname: ORADATA_0001 ; 0x028: length=13 kfdhdb.grpname: ORADATA ; 0x048: length=8 kfdhdb.fgname: ORADATA_0001 ; 0x068: length=13

解决方案

关闭CRS,包括服务器上的ASMRDBMS,并以root用户身份使用下列命令,放置丢失的标签背面

[root@bin]# /etc/init.d/oracleasm force-renamedisk /dev/sdo1 ORADATA2

[root@bin]# /usr/sbin/asmtool -I -l "/dev/oracleasm" -n /dev/sdo1 -a label

asmtool: Disk "/dev/sdo1" is marked an ASM disk with the label "ORADATA2"

[root@bin]# /etc/init.d/oracleasm scandisks

这之后一切都开始运行。