问题概述
重做PostgreSQL容灾备库,在删除原来的 $PGDATA
目录时,出现Input/output error
提示;
查看 /var/log/message
日志,kernel 抛出了 XFS Metadata CRC error detected
错误
问题原因
出现问题前的操作指令为:rm -rf $PGDATA
,因此怀疑时删除的文件过大或者过多,触发了系统bug,导致 xfs 文件系统的 metadata 数据损坏。
解决方案
由于是容灾数据,哪怕数据全部丢失也可以从上游数据找回来,因此按照 message 日志中的提示进行操作。
- umount文件系统
umount /data1
该问题是由于其他会话持有该文件系统的句柄,可以通过 lsof
或 fuser
工具确定会话的进程ID,通过kill
命令释放会话,处理后即可执行 umount;
- 备份XFS metadata
xfs_metadump /dev/sdb1 ~/sdb1.metadump
- 使用
xfs_repair
修复xfs 系统
xfs_repair -L /dev/sdb1
- 挂载磁盘
mount -a