7 x 24 在线支持!
如何处理MySQL InnoDB信息 “Database page corruption on disk or a failed file read of page”
适用于:
MySQL服务器版本4.0及以上
本文信息适用于所有平台。
症状
MySQL服务器由以下信息崩溃:
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page
原因
为了保护数据,InnoDB使用校验和(与页储存在一起)。当InnoDB从磁盘读取时,它计算每个页的校验和,并与磁盘加载的校验和进行比较。如果值是不同的,可能真的发生了一些错误。InnoDB将关闭MySQL服务器,以防止进一步的逻辑或物理损坏。
解决方案
如何找出损坏发生的原因
没有通用的解决方案。最典型的是有一些硬件问题,例如:物理磁盘或内存故障,坏的驱动器/控制器,甚至操作系统内核的bug。下面是一些建议:
- 在Linux平台上,有时会重置页缓存能解决这个问题:
echo 2 > /proc/sys/vm/drop_caches
- 检查系统日志有没有可能的硬件故障。
- 如果InnoDB每次在特定页崩溃,最典型的是物理磁盘发生故障:运行对于你的OS /硬件的详细磁盘诊断。
- 如果崩溃是随机的且不在相同查询重复,可能是RAM故障:运行详细的RAM诊断。
- 在MySQL关闭时,用innochecksum工具检查InnoDB文件是有帮助的。
如何从损坏中恢复
最重要的是执行详细的硬件诊断,以消除问题扩散的机会。如果操作系统I / O缓存是磁盘读损坏的原因,重置缓存或重新启动操作系统应有助于消除当前的问题,数据库可能会重新运作。
有时唯一的解决办法是在有效恢复模式下备份数据。Sometimes the only
参考