mysql异常恢复工具_记一次mysql 异常停电数据库损坏恢复的方法

mysql innodb 引擎损坏恢复的参考资料还是很多的,以下记录一个问题的处理

问题

异常停电,mysql 重启异常,innodb tablespace 异常

一般常见的解决方法

备份,删除ibdata1,ib_logfile* 等文件,配置

innodb_force_recovery = 6

innodb_purge_threads = 1

然后尝试重启

简单说明

以上方法不直接推荐使用,理论上先备份是最好的,也是应该做的,然后逐步尝试从1-6进行增加处理

当然不同的步骤进行的操作是不一样的,如果1可以进入(先备份),同时可以链接数据库特别好,链接

进行数据备份(很重要),然后尝试不同的级别,查看mysql server log,查看信息,一般会有提示信息的

告诉我们那种表的有异常(也可以使用mysqlcheck工具)

碰到的几个问题

可能系统比较好,异常停电的时候,1 可以进入然后就进行了备份操作(dump),然后就打算使用6模式

进行数据处理了(首先进行了db 数据备份),然后删除ibdata1,ib_logfile* 结果提示table 不存在,感觉

不对,然后基于已有的备份,直接替换删除的文件,还是使用6模式,特别好,直接可以访问数据库,同时

给了一个比较好的err 提示(mysql server 日志)index 异常(就一张表,特别好),因为上边已经备份了

数据库,为了方便又进行了异常索引表数据的备份,因为模式是6不能进行删除操作,所以在系统db 创建了

又异常的表,停止mysql 然后copy 了frm文件到有问题的db 系统,然后修改模式为1,此模式下我们可以进行

数据表的操作,然后我们删除了有异常的table,重新导入数据进行恢复,之后停止mysql,修改innodb_force_recovery

为默认的,启动mysql 测试发现系统已经正常了,实际上我们全程可以基于1模式进行数据库的恢复

总结

进行恢复的时候尽备份很重要,遇到问题不能着急,应该思考下(尤其比较重要的db系统),同时对于依赖db的系统

也应该进行可能的停机(避免数据不一致的操作),官方文档是特别好的资料,不能直接百度搜索解决问题

参考资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值