生产平台集群最近有台主机的实例宕了几天,并且更换过主机的阵列卡。在主机维护完成后我侧进行恢复实例的操作发现有个实例无法恢复。
gprecoverseg 操作会有下列提示
只是简单的提示恢复失败没有详细的信息
根据提示的 gpseg241 执行命令
gpstate -c | grep gpseg241
得到 primary 实例所在的主机和端口号
登入对应的主机
根据端口好使用 ps -ef 命令可以到实例日志的路径,查看日志。
根据恢复操作报错的时间点选择日志文件查看
通过查看日志的提示信息可以看出来是在一个路径下的数据块文件产生了坏块。
尝试使用 mirror 实例的同名文件进行覆盖。
在校验文件 md5sum 的值时发生报错,随后使用 ls 命令发现在 2435928 文件夹下的文件基本都报同一错误。
百度了一下这个报错是结构需要清理,因为是生产平台并未做这个操作而是反馈主机侧修复。
网上找到的步骤如下:
1) 首先 df -t 查看出错的挂载点对应的文件系统和文件系统类型
2) 然后 umount 这个文件系统
比如: umount /dev/sda1
3) 然后根据文件系统类型不同操作不同
比如 ext4:
fsck.ext4 /dev/sda1
或者 xfs:
xfs_repair /dev/sda1
4) 最后重启 reboot
此步骤仅供参考
修复硬盘后再执行 gprecoverseg 命令就正常了,另外如果修复失败就需要格式化出问题的文件系统,然后再做原主机的备机替换就是执行 gprecoverseg -F 命令。
最后修改时间:2023-10-31 15:55:50
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。