问题概述

重做PostgreSQL容灾备库,在删除原来的 $PGDATA 目录时,出现Input/output error 提示;

XFS Metadata CRC error detected 错误处理_数据

查看 /var/log/message 日志,kernel 抛出了 XFS Metadata CRC error detected错误

XFS Metadata CRC error detected 错误处理_filesystem_02

问题原因

出现问题前的操作指令为:rm -rf $PGDATA ,因此怀疑时删除的文件过大或者过多,触发了系统bug,导致 xfs 文件系统的 metadata 数据损坏。

解决方案

由于是容灾数据,哪怕数据全部丢失也可以从上游数据找回来,因此按照 message 日志中的提示进行操作。

  1. umount文件系统
umount /data1

XFS Metadata CRC error detected 错误处理_filesystem_03


该问题是由于其他会话持有该文件系统的句柄,可以通过 lsof 或 fuser 工具确定会话的进程ID,通过kill 命令释放会话,处理后即可执行 umount;

XFS Metadata CRC error detected 错误处理_文件系统_04

  1. 备份XFS metadata
xfs_metadump /dev/sdb1 ~/sdb1.metadump

XFS Metadata CRC error detected 错误处理_PostgreSQL_05

  1. 使用 xfs_repair 修复xfs 系统
xfs_repair -L /dev/sdb1

XFS Metadata CRC error detected 错误处理_PostgreSQL_06

  1. 挂载磁盘
mount -a

XFS Metadata CRC error detected 错误处理_xfs_07