由于磁盘标签丢失,一个ASM磁盘无法找到

如果自己搞不定可以找诗檀软件专业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

这之后一切都开始运行。

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号