KFED修复ASM磁盘头
发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,之前RAC环境出现了故障,节点2操作系统崩溃,重装系统后,CRS添加成功,但是CRS启动有问题,排查发现节点2 ASM的+DATA diskgroup无法mount,报如下错误:ORA-15063:
千家信息网最后更新 2024年11月17日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安全错误
数据库的锁怎样保障安全
空岛战争服务器
网络安全体验设备
科技公司是属于互联网行业吗
网络安全实习经历怎么写
网络安全岗位表
网络技术待验证问题
网络安全规划的主要功能
鄂州中信网络技术工程有限公司
小森生活服务器正在维护
网络安全订单班是什么
泡泡堂服务器在武汉哪
互联网科技公司在a股上市
为什么总是注册服务器连接失败
阿里云服务器返点
web服务器建设实验报告
职校计算机网络技术实习干什么的
计算机网络技术哪所大学好
无锡小黄鸭网络技术有限公司
soul连接不了服务器怎么办
长春鑫鼎信网络技术支持
网络安全预警处置模板
数据库引擎内存
GDP数据库有哪些
北大方正数据库是知网吗
云服务器如何设置成中文
服务器如何添加管理员
召开网络安全主题班会总结
网络安全主题班会日志格式
涉清明网络安全
生物信息学数据库杂志