如果自己搞不定可以找诗檀软件专业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,包括服务器上的ASM和RDBMS,并以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
这之后一切都开始运行。