KFED修复ASM磁盘头
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,之前RAC环境出现了故障,节点2操作系统崩溃,重装系统后,CRS添加成功,但是CRS启动有问题,排查发现节点2 ASM的+DATA diskgroup无法mount,报如下错误:ORA-15063:
千家信息网最后更新 2026年10月31日KFED修复ASM磁盘头之前RAC环境出现了故障,节点2操作系统崩溃,重装系统后,CRS添加成功,但是CRS启动有问题,排查发现节点2 ASM的+DATA diskgroup无法mount,报如下错误:
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"
在ASM实例上检查磁盘组和磁盘的状态,发现+DATA diskgroup的6块盘有3块是MEMBER,有3块是PROVISIONED。
NOMOUNT状态,导致添加操作失败,而尝试在目前正常工作的节点添加磁盘,结果同样报错:
步骤如下:
1、首先编译kfed
#cd $ORACLE_HOME/rdbms/lib
#make -f ins_rdbms.mk ikfed
2、用kfed读取故障ASM磁盘头信息
kfdhdb.ub4spare[39]: 104436 ; 0x198: 0x000197f4
kfdhdb.acdb.ub2spare: 43605 ; 0x1de: 0xaa55
正常ASM磁盘头信息该项为0
3、修复步骤:
a、通过kfed read /dev/oracleasm/disks/OADB_DATA_DISK_1 > /tmp/disk1.txt 导出磁盘头信息
b、修改kfdhdb.ub4spare[39]: 104436 ; 0x198: 0x000197f4 为 kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000 ; 修改kfdhdb.acdb.ub2spare: 43605 ; 0x1de: 0xaa55为kfdhdb.acdb.ub2spare: 0 ; 0x1de: 0x0000
c、通过kfed merge /dev/oracleasm/disks/OADB_DATA_DISK_1 text=/tmp/disk1.txt
d、另外两块磁盘也执行如上操作
e、sqlplus / as sysasm --select group_number, disk_number, mount_status, header_status, name, path from v$asm_disk; 发现磁盘头信息已显示为MEMBER,+DATA也成功mount
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"
在ASM实例上检查磁盘组和磁盘的状态,发现+DATA diskgroup的6块盘有3块是MEMBER,有3块是PROVISIONED。
NOMOUNT状态,导致添加操作失败,而尝试在目前正常工作的节点添加磁盘,结果同样报错:
- SQL> alter diskgroup DATA add disk '/dev/oracleasm/disks/OADB_DATA_300G_6';
- alter diskgroup DATA add disk '/dev/oracleasm/disks/OADB_DATA_300G_6'
- *
- ERROR at line 1:
- ORA-15032: not all alterations performed
- ORA-15029: disk '/dev/oracleasm/disks/OADB_DATA_300G_6' is already mounted by this instance
步骤如下:
1、首先编译kfed
#cd $ORACLE_HOME/rdbms/lib
#make -f ins_rdbms.mk ikfed
2、用kfed读取故障ASM磁盘头信息
- $kfed read /dev/oracleasm/disks/OADB_DATA_DISK_1
- 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: T=0 NUMB=0x0
- kfbh.block.obj: 2147483649 ; 0x008: TYPE=0x8 NUMB=0x1
- kfbh.check: 1802212223 ; 0x00c: 0x6b6b937f
- 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
- 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: 168820736 ; 0x020: 0x0a100000
- kfdhdb.dsknum: 1 ; 0x024: 0x0001
- kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
- kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
- kfdhdb.dskname: DATAG1_0001 ; 0x028: length=11
- kfdhdb.grpname: DATAG1 ; 0x048: length=6
- kfdhdb.fgname: DATAG1_0001 ; 0x068: length=11
- kfdhdb.capname: ; 0x088: length=0
- kfdhdb.crestmp.hi: 32928501 ; 0x0a8: HOUR=0x15 DAYS=0x17 MNTH=0xc YEAR=0x7d9
- kfdhdb.crestmp.lo: 2195144704 ; 0x0ac: USEC=0x0 MSEC=0x1d0 SECS=0x2d MINS=0x20
- kfdhdb.mntstmp.hi: 32940275 ; 0x0b0: HOUR=0x13 DAYS=0x7 MNTH=0x8 YEAR=0x7da
- kfdhdb.mntstmp.lo: 3201116160 ; 0x0b4: USEC=0x0 MSEC=0x34a SECS=0x2c MINS=0x2f
- kfdhdb.secsize: 512 ; 0x0b8: 0x0200
- kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
- kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
- kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
- kfdhdb.dsksize: 512000 ; 0x0c4: 0x0007d000
- kfdhdb.pmcnt: 6 ; 0x0c8: 0x00000006
- kfdhdb.fstlocn: 1 ; 0x0cc: 0x00000001
- kfdhdb.altlocn: 2 ; 0x0d0: 0x00000002
- kfdhdb.f1b1locn: 0 ; 0x0d4: 0x00000000
- kfdhdb.redomirrors[0]: 0 ; 0x0d8: 0x0000
- kfdhdb.redomirrors[1]: 0 ; 0x0da: 0x0000
- kfdhdb.redomirrors[2]: 0 ; 0x0dc: 0x0000
- kfdhdb.redomirrors[3]: 0 ; 0x0de: 0x0000
- kfdhdb.dbcompat: 168820736 ; 0x0e0: 0x0a100000
- kfdhdb.grpstmp.hi: 32928501 ; 0x0e4: HOUR=0x15 DAYS=0x17 MNTH=0xc YEAR=0x7d9
- kfdhdb.grpstmp.lo: 2195053568 ; 0x0e8: USEC=0x0 MSEC=0x177 SECS=0x2d MINS=0x20
- kfdhdb.ub4spare[0]: 0 ; 0x0ec: 0x00000000
- kfdhdb.ub4spare[1]: 0 ; 0x0f0: 0x00000000
- kfdhdb.ub4spare[2]: 0 ; 0x0f4: 0x00000000
- kfdhdb.ub4spare[3]: 0 ; 0x0f8: 0x00000000
- kfdhdb.ub4spare[4]: 0 ; 0x0fc: 0x00000000
- kfdhdb.ub4spare[5]: 0 ; 0x100: 0x00000000
- kfdhdb.ub4spare[6]: 0 ; 0x104: 0x00000000
- kfdhdb.ub4spare[7]: 0 ; 0x108: 0x00000000
- kfdhdb.ub4spare[8]: 0 ; 0x10c: 0x00000000
- kfdhdb.ub4spare[9]: 0 ; 0x110: 0x00000000
- kfdhdb.ub4spare[10]: 0 ; 0x114: 0x00000000
- kfdhdb.ub4spare[11]: 0 ; 0x118: 0x00000000
- kfdhdb.ub4spare[12]: 0 ; 0x11c: 0x00000000
- kfdhdb.ub4spare[13]: 0 ; 0x120: 0x00000000
- kfdhdb.ub4spare[14]: 0 ; 0x124: 0x00000000
- kfdhdb.ub4spare[15]: 0 ; 0x128: 0x00000000
- kfdhdb.ub4spare[16]: 0 ; 0x12c: 0x00000000
- kfdhdb.ub4spare[17]: 0 ; 0x130: 0x00000000
- kfdhdb.ub4spare[18]: 0 ; 0x134: 0x00000000
- kfdhdb.ub4spare[19]: 0 ; 0x138: 0x00000000
- kfdhdb.ub4spare[20]: 0 ; 0x13c: 0x00000000
- kfdhdb.ub4spare[21]: 0 ; 0x140: 0x00000000
- kfdhdb.ub4spare[22]: 0 ; 0x144: 0x00000000
- kfdhdb.ub4spare[23]: 0 ; 0x148: 0x00000000
- kfdhdb.ub4spare[24]: 0 ; 0x14c: 0x00000000
- kfdhdb.ub4spare[25]: 0 ; 0x150: 0x00000000
- kfdhdb.ub4spare[26]: 0 ; 0x154: 0x00000000
- kfdhdb.ub4spare[27]: 0 ; 0x158: 0x00000000
- kfdhdb.ub4spare[28]: 0 ; 0x15c: 0x00000000
- kfdhdb.ub4spare[29]: 0 ; 0x160: 0x00000000
- kfdhdb.ub4spare[30]: 0 ; 0x164: 0x00000000
- kfdhdb.ub4spare[31]: 0 ; 0x168: 0x00000000
- kfdhdb.ub4spare[32]: 0 ; 0x16c: 0x00000000
- kfdhdb.ub4spare[33]: 0 ; 0x170: 0x00000000
- kfdhdb.ub4spare[34]: 0 ; 0x174: 0x00000000
- kfdhdb.ub4spare[35]: 0 ; 0x178: 0x00000000
- kfdhdb.ub4spare[36]: 0 ; 0x17c: 0x00000000
- kfdhdb.ub4spare[37]: 0 ; 0x180: 0x00000000
- kfdhdb.ub4spare[38]: 0 ; 0x184: 0x00000000
- kfdhdb.ub4spare[39]: 104436 ; 0x198: 0x000197f4
- kfdhdb.ub4spare[40]: 0 ; 0x18c: 0x00000000
- kfdhdb.ub4spare[41]: 0 ; 0x190: 0x00000000
- kfdhdb.ub4spare[42]: 0 ; 0x194: 0x00000000
- kfdhdb.ub4spare[43]: 0 ; 0x198: 0x00000000
- kfdhdb.ub4spare[44]: 0 ; 0x19c: 0x00000000
- kfdhdb.ub4spare[45]: 0 ; 0x1a0: 0x00000000
- kfdhdb.ub4spare[46]: 0 ; 0x1a4: 0x00000000
- kfdhdb.ub4spare[47]: 0 ; 0x1a8: 0x00000000
- kfdhdb.ub4spare[48]: 0 ; 0x1ac: 0x00000000
- kfdhdb.ub4spare[49]: 0 ; 0x1b0: 0x00000000
- kfdhdb.ub4spare[50]: 0 ; 0x1b4: 0x00000000
- kfdhdb.ub4spare[51]: 0 ; 0x1b8: 0x00000000
- kfdhdb.ub4spare[52]: 0 ; 0x1bc: 0x00000000
- kfdhdb.ub4spare[53]: 0 ; 0x1c0: 0x00000000
- kfdhdb.ub4spare[54]: 0 ; 0x1c4: 0x00000000
- kfdhdb.ub4spare[55]: 0 ; 0x1c8: 0x00000000
- kfdhdb.ub4spare[56]: 0 ; 0x1cc: 0x00000000
- kfdhdb.ub4spare[57]: 0 ; 0x1d0: 0x00000000
- kfdhdb.acdb.aba.seq: 0 ; 0x1d4: 0x00000000
- kfdhdb.acdb.aba.blk: 0 ; 0x1d8: 0x00000000
- kfdhdb.acdb.ents: 0 ; 0x1dc: 0x0000
- kfdhdb.acdb.ub2spare: 43605 ; 0x1de: 0xaa55
kfdhdb.ub4spare[39]: 104436 ; 0x198: 0x000197f4
kfdhdb.acdb.ub2spare: 43605 ; 0x1de: 0xaa55
正常ASM磁盘头信息该项为0
3、修复步骤:
a、通过kfed read /dev/oracleasm/disks/OADB_DATA_DISK_1 > /tmp/disk1.txt 导出磁盘头信息
b、修改kfdhdb.ub4spare[39]: 104436 ; 0x198: 0x000197f4 为 kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000 ; 修改kfdhdb.acdb.ub2spare: 43605 ; 0x1de: 0xaa55为kfdhdb.acdb.ub2spare: 0 ; 0x1de: 0x0000
c、通过kfed merge /dev/oracleasm/disks/OADB_DATA_DISK_1 text=/tmp/disk1.txt
d、另外两块磁盘也执行如上操作
e、sqlplus / as sysasm --select group_number, disk_number, mount_status, header_status, name, path from v$asm_disk; 发现磁盘头信息已显示为MEMBER,+DATA也成功mount
信息
磁盘
故障
节点
成功
步骤
状态
系统
要么
一致
操作系统
办法
地方
如上
实例
工具
环境
结果
错误
问题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云南咖啡
互联网科技名片
深圳九邦互联网科技有限公司
互联网金融科技平台
有木互联网科技
互联网养老 桔豆科技
四个字互联网科技公司取名
无锡溥仪互联网科技有限公司
武汉健翔互联网络科技有限公司
互联网科技革命什么开始
民营互联网公司国防科技
用友工业互联网科技发展
梅州GM互联网络科技有限公司
云南省自由互联网科技有限公司
广东鹅鹅鹅互联网科技有限公司
广州梦谷互联网科技有限公司领导
互联网科技的前景
绵阳真晨互联网科技有限公司
互联网科技大会大佬
上海互联网科技园景观
重生之互联网科技帝国
科技金融是不是互联网金融
盈实互联网科技
互联网科技公司发展
小马过河互联网科技
成都互联网科技公司100强
科技互联网大厂
湖北码尼互联网科技有限公司电话
西安小鹰速贷互联网科技有限公司
云南省自由互联网科技有限公司