阿里云ECS(linux)磁盘满触发的mysql的表异常修复案例
阿里云技术支持:完颜镇江
问题现象:
磁盘空间满了,第一想到的就是删除无用的服务日志或者升级数据盘。
通常是使用du –sh去分析目录找出占用最大的。
根据经验来说基本都是日志文件占用的,那么就是停止应用清理日志,或者清理日志后重启应用即可。
但是本实例的异常是网站主页正常,但是子导航的内容为空,首先怀疑的就是磁盘满了导致mysql数据库的数据异常。
问题排查:
排查的方法是打开mysql的errlog
添加以下配置重启mysql服务(在[mysqld]下添加)
log-error=/usr/local/mysql/log/error.log
#tail –f /usr/local/mysql/log/error.log(在刷新错误的页面的时候mysql出现异常的部分,顺便查看日志)
140406 12:48:52 [ERROR]/www/wdlinux/mysql-5.1.63/libexec/mysqld: Table './admin/pre_forum_post' ismarked as crashed and should be repaired
很明显了就是MySQL常由于某种原因,出现表Crash,需要repair。
修复的命令如下
#myisamchk -c-r /www/wdlinux/mysql-5.1.63/var/admin/pre_forum_post.MYI
- Fixing index 1
- Fixing index 2
- Fixing index 3
- Fixing index 4
Date records:42880
这样就成功了修复了数据库表,重启下mysql服务网站正常了。