记一次由硬盘坏道导致的mysql数据库故障

前些天,我在上课时,收到监控短信报警,赶忙用手机连上去看下,发现首页报错:

Table ‘forum_thread’ is marked as crashed and should be repaired

这是常见的数据表错误,通常是由于服务器意外断电等故障导致,修复起来往往比较简单,小点儿的表可以直接用phpmyadmin执行修复操作,大点的表可以连上服务器,执行repair table 表名来进行修复。本例中,我在执行命令后,发现依然报错,而出错信息变为了:

Table ‘forum_thread’ is marked as crashed and last (automatic) repair failed

也就是说,修复无效。这种情况很少遇到,于是,只能先把数据库停掉(执行repair时,不需停止数据库服务)。

service mysql stop cd /usr/local/[tableName]/ myisamchk -r common_forum_thread.MYI

依然报错。奇怪了,通常只要文件没有损坏,MYI都是可以修复了,因为MYI储存的是表所以,可以根据数据生成的。

无奈,最后执行了

myisamchk –safe-recover common)_forum_thread.MYI

该指令通常用于最后的修复操作,修复速度最慢。结果依然很失望,还是报错。这时候,我开始怀疑是服务器本身的问题了,最可疑的是文件本身,如果文件无法读写的话,那么很可能是硬盘或文件系统有问题了。于是,执行了一下dmesg查看一下开机信息,发现有一些I/O错误。

于是,硬盘坏道的可疑性更大了,随后cd到home目录下,执行

badblocks -s -v -o /root/badblocks.log /dev/sda

来检查磁盘坏道,执行到12%左右的时候,我去看了下文件,如图:

已经有很多坏扇区了,确定是硬盘问题了。时候反省一下,当怀疑有硬盘坏道时,即使是写入文件操作,也是危险的,因为写入可能导致坏道进一步扩大。于是,剩下的事情就是联系机房,换硬盘,对拷数据,恢复系统……把旧硬盘的数据cp过来,执行修复,检查网站,测试功能,重新上线。

总结:对于独服,要尤其注意硬盘坏道问题,本次故障,服务器是1T的硬盘,没有做RAID,也没有定期检查坏道,硬盘用了2年左右的时间,好在数据有备份。备份,备份,还是备份,无论是采取整站备份还是增量备份,一定要做到服务器定期备份,以免出现意外情况。本次损坏的仅仅是日志文件,对拷过来就可以修复,如果损坏的是数据文件,那损失就不可估量了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

MySQL高可用方案-PXC环境部署记录

之前梳理了Mysql+Keepalived双主热备高可用操作记录,对于mysql高可用方案,经常用到的的主要有下面三种: 一、基于主从复制的高可用方案:双节点主...

7239
来自专栏weixuqin 的专栏

基于 Django 的手机管理系统

1454
来自专栏北京马哥教育

运维需要懂的那些安全技能

运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 以前的认知 以前刚接触IT行业,而我身为运维,我以为我所需要做的安全就是修改服务器密码为复...

4495
来自专栏醉程序

配置nginx + php7 + mongodb的centos服务器环境

1392
来自专栏ml

C/C++ http协议加载sessionID

       很多时候,使用一个既定的API虽然可以去完成一些任务,但是还是不如自己写来的那么随性和自由. http协议,最常用的get,post两种方式传输数...

3066
来自专栏Python数据科学

Python爬虫之模拟登录京东商城

首先感谢大家的大力支持,博主会持续更新精彩文章,分享更多技术干货。另外,最近在新建的QQ群中结识了一些朋友,气氛很好,大家互相分享技术内容,博主也从中收获了不少...

1922
来自专栏北京马哥教育

LINUX上MYSQL优化三板斧

云豆贴心提醒,本文阅读时间7分钟 现在MySQL运行的大部分环境都是在Linux上的,如何在Linux操作系统上根据MySQL进行优化,我们这里给出一些通用简...

2717
来自专栏小车博客

windows 10 DD包制作

2056
来自专栏存储

Xen server虚拟化中虚拟机磁盘文件丢失的处理办法

因服务器突然断电原因导致Xen Server服务器中一台VPS(即Xen Server虚拟机)不可用,虚拟磁盘文件丢失,通过电话联系北亚数据来进行恢复。硬件环...

1857
来自专栏杨逸轩 ' sBlog

网站域名被劫持了应该怎么办

3195

扫码关注云+社区