记一次由硬盘坏道导致的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主从复制经典架构

  随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长。特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会...

914
来自专栏魏艾斯博客www.vpsss.net

lnmp环境下如何手动备份网站文件和数据库

我们站长做个网站都是挺不容易的,从域名注册,掌握虚拟主机或者 VPS 的基本配置,到安全防护,搭建网站、图片处理、发布文章,SEO 等等,是样样精通,不过这里面...

41415
来自专栏杨建荣的学习笔记

MySQL修复表的简单分析(r11笔记第19天)

今天有个同事问我一个数据库的问题,如果开始他就把环境细节全都告诉我,可能我就知难而退了。等我大体明白了问题之后,发现好像背景比我想的要复杂多了。这是一个远程云主...

33316
来自专栏杨建荣的学习笔记

Greenplum集群主机名问题及修复

昨天写了一篇Greenplum数据仓库迁移小记,看起来一起都在计划中,一切都在掌握中,今天早上的时候,统计组的同学反馈说写入GP的时候报了下面的错误。

882
来自专栏杨建荣的学习笔记

Percona-toolkit的安装和配置(r8笔记第86天)

pt工具是非常实用有效的一个工具集,对于诊断常规问题还是非常有效的,相比于Oracle的工具,MySQL中没有那么多复杂的数据字典,在实现方式上相对更加轻巧,主...

3607
来自专栏腾讯云容器服务团队的专栏

Deployment vs ReplicationController in Kubernetes

此文主要选择了两个最常用的 controller : Deployment 和 ReplicationController ,从各自功能,优缺点方面进行对比,...

2.4K0
来自专栏数据和云

举一反三:跨平台版本迁移之 XTTS 方案操作指南

作者 | 罗贵林: 云和恩墨技术工程师,具有8年以上的 Oracle 数据库工作经验,曾任职于大型的国家电信、省级财政、省级公安的维护,性能调优等。精通 Ora...

993
来自专栏杨建荣的学习笔记

一条关于swap争用的报警邮件分析(一)(r7笔记第28天)

最近这些天有一台服务器总是会收到剩余swap过低的告警。 邮件内容大体如下: ############ ZABBIX-监控系统: --------------...

3364
来自专栏idealclover的填坑日常

XAMPP+PhpStorm+Xdebug调试本地网页

因为要折腾自己的Wordpress博客,所以不得已入坑了世界上最好的语言qwq第一步就是所说的配置本地的调试环境啦~总不能一上来就在服务器上写吧orz

651
来自专栏菩提树下的杨过

win7 64位下如何折腾Tubro C 3.0

背景: 国庆长假在老家无法上网,无聊之余从以前的旧箱子里刨出了一本古董级的"C程序设计",1996年版,没错,就是谭浩强主编的那本经典教材,翻了几天,又有一种想...

17610

扫码关注云+社区