【MySQL】故障恢复一例

今天早上查看zabbix的时候报错,错误截图如下:


zabbix报错

一看就是数据库有问题,登陆数据库服务器一看,mysqld进程已经没有了,接着查看系统日志,截图如下:


系统日志

可以很清楚地看到,OOM,mysqld进程被kill。
找到问题了,我们调小innodb_buffer_pool_size跟tokudb_cache_size,然后启动数据库。数据库正常启动,但是,前台依旧报错。
我们登录数据库手动查一条数据测试一下看看。

select * from history limit 1;
1033 Incorrect information in file: ‘./mysql/zabbix/history.frm

很可能就是mysqld被意外kill以后造成表损坏,我们手动删除ibdata1跟logfile,然后启动数据库。
启动过程报错,错误大概是这样的:

2014-DD-MM 02:15:16 16414 [Note] Found 1 prepared transaction(s) in TokuDB
2014-DD-MM 02:15:16 16414 [ERROR] Found 1 prepared transactions! It means that mysqld was not shut down properly last time and critical recovery information (last binlog or tc.log file) was manually deleted after a crash. You have to start mysqld with --tc-heuristic-recover switch to commit or rollback pending transactions.
2014-DD-MM 02:15:16 16414 [ERROR] Aborting 

那么,我们在配置文件mysqld下增加参数

#innodb_force_recovery = 1

启动时增加参数:

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql  --tc-heuristic-recover=rollback &

ok,数据库正常启动,事务也回滚了。
我们再次修改参数

#innodb_force_recovery = 0

这时,数据库即可正常操作。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装 1.1BLOG文档结构图 ...
    小麦苗DB宝阅读 10,842评论 0 31
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,668评论 0 5
  • zabbix是什么在此就不多作介绍了,可以参考之前的文章零代码如何打造自己的实时监控预警系统,这篇主要介绍安装及注...
    欢醉阅读 1,587评论 0 2
  • 【韩喜文2018.02.22星期四】 好展馆让天下没有卖不出去的产品 好展馆让天下没有不能传承的文化 日精进:77...
    韩喜文阅读 40评论 0 0
  • 周一秉尚没休息,晚上去公园前E出口五月花广场必瘦站做fiso了,6:30~9:30晚上,然后一起吃饭10:30坐地...
    崔焕英阅读 201评论 0 0

友情链接更多精彩内容