oracle:记一次磁盘头故障处理

背景:集群宕机以后,重启报错,DATADG1磁盘组无法启动

1.手动挂起DATADG1磁盘组 报错

sql 复制代码
alter diskgroup datadg1 mount

后台ASM报错

根据报错 found 0 disks 怀疑 是磁盘组里的磁盘有问题,没有启动

2.查询磁盘状态

sql 复制代码
select name,path,STATE,MODE_STATUS from v$asm_disk;

发现磁盘都在,但是磁盘组没法跟磁盘对应起来

3.硬件工程师检查硬盘、以及存储网关都正常,磁盘权限也正常

4.怀疑是磁盘头损坏了,导致磁盘组跟磁盘无法对应

sql 复制代码
select group_Number,disk_number,mount_status ,header_status from v$asm_disk;

发现2,3磁盘头状态为CANDIDATE

5.使用kfed查看磁盘头

sql 复制代码
kfed read /dev/rhdiskpower2

kfbh.type显示异常 正常情况下应该是KFBTYP_DISKHEAD

6.修复2,3磁盘头

从版本10.2.0.5开始ASM 会对disk header做一个额外的备份。即第二AU 的倒数第二个block中备份了一份KFBTYP_DISKHEAD。这个ASM Disk header的作用是当真的KFBTYP_DISKHEAD被意外覆盖或损坏时可以使用Oracle 工具 KFED使用repair选项来修复Disk header

kfed repair //dev/rhdiskpower2

此时检查 磁盘头状态正常,显示为KFBTYP_DISKHEAD

7.一节点的数据库反复重启

修复磁盘头以后,磁盘能够正常挂起,并且数据库能够拉起

但是数据库在运行一段时间后 ,出现宕机

数据库日志显示 IO错误

由于操作系统为AIX,排查两个节点的磁盘参数

sql 复制代码
lsattr -El hdisk20 | grep reserve

发现二节点并没有设置no_reserve

这个参数的作用:这个参数其实是表示操作系统是否持有存储卷的共享锁方式

设置

sql 复制代码
chdev -l hdisk21 -a reserve_policy=no_reserve

设置完成后,一节点能够正常运行

8.二节点gpnpd服务无法启动

根据gipcd 日志信息

匹配到官方文档Doc ID 2034669.1

删除以上三个目录的缓存,重启rac,二节点启动成功

相关推荐
VX:Fegn08956 分钟前
计算机毕业设计|基于springboot + vue乡村振兴服务系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
大柏怎么被偷了8 分钟前
【Linux】文件系统
linux·运维·数据库
即将进化成人机16 分钟前
验证码生成 + Redis 暂存 + JWT 认证
数据库·redis·笔记
画***林17 分钟前
雷家林诗歌集录一英文版Collected Poems of Lei Jialin, Volume I (English Edition)
数据库·sql
fantasy_arch41 分钟前
pd_process.c 文件源码分析
c语言·数据库·视频编解码·av1
MAHATMA玛哈特科技42 分钟前
液压校平机:金属的“液态风筝收线器”
oracle·自动化·矫平机·液压矫平机
Elastic 中国社区官方博客42 分钟前
Kibana:使用 ES|QL 构建地图,对国家或地区的指标进行对比
大数据·数据库·elasticsearch·搜索引擎·信息可视化·全文检索·kibana
vortex51 小时前
ORM是什么?如何理解ORM?ORM的优缺点?
java·数据库·sql·mysql·oracle·orm
盟接之桥1 小时前
盟接之桥--说制造:从“找缝隙”到“一万米深”——庖丁解牛式的制造业精进之道
大数据·前端·数据库·人工智能·物联网·制造
九章-1 小时前
国企国产化替代标杆实践:金仓数据库赋能贵州磷化EMS系统自主可控升级
数据库·mysql·安全