文档章节

Mysql表顺坏导致服务无法启动

robortly
 robortly
发布于 2016/06/28 09:49
字数 843
阅读 63
收藏 1

针对以前好好的Mysql服务器进程能正常启动,突然启动起来的时候报:

通过上面的技术文章说明找到:innodb_force_recovery=6

对innodb_force_recovery设置详情描述如下:

1(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页。
2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。
3(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。
4(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。
5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。
6(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。

====================================================================

好了,配置好值为6就可以正常启动服务了。但是你的整个数据库进入只读状态,不能进行任何更新修改操作。尝试备份会出现服务停止的情况......My goooooooood...........

====================================================================

占时没有找到更好的应对策略。因为是数据库顺坏了,现在的表数据只能是一个只读状态,而实际中数据才是最重要的,所以我们就将所有能查看的数据进行导出吧。

====》接着一个个导出好了sql文件,中途会发下有些表是无法导出的,这个时候就需要进一步将DDL语言复制,手动执行,生成表的模型到新的数据库实例上去。如果这个表里面有数据,那么你就只能通过日志去恢复了,我查看了日志,可以通过搜索日志里面的表名进行定位错误。由于我遇到的这个数据表没有数据,所以也就没有恢复了。

====》一个个数据导出来后,就进行一次备份吧......

可以采用以下手段预防mysql 表损坏: 

1 、定期使用myisamchk 检查MyISAM 表(注意要关闭mysqld ),推荐使用check  table 来检查表(不用关闭mysqld )。 

2 、在做过大量的更新或删除操作后,推荐使用OPTIMIZE TABLE 来优化表,这样既减少了文件碎片,又减少了表损坏的概率。 

3 、关闭服务器前,先关闭mysqld (正常关闭服务,不要使用kill -9 来杀进程)。 

4 、使用ups 电源,避免出现突然断电的情况。 

5 、使用最新的稳定发布版mysql ,减少mysql 本身的bug 导致表损坏。 

6 、对于InnoDB 引擎,你可以使用innodb_tablespace_monitor 来检查表空间文件内文件空间管理的完整性。 

7 、对磁盘做raid ,减少磁盘出错并提高性能。 

8 、数据库服务器最好只跑mysqld 和必要的其他服务,不要跑其他业务服务,这样减少死机导致表损坏的可能。 

9 、不怕万一,只怕意外,平时做好备份是预防表损坏的有效手段。

 

© 著作权归作者所有

共有 人打赏支持
robortly
粉丝 8
博文 76
码字总数 45614
作品 0
深圳
技术主管
MySQL 常见问题和应用技巧

一、 忘记 MySQL 的 root 密码 1. 登录到数据库所在的服务器,手工 kill 掉 mysql 进程。 (1) 登录到数据库所在的服务器,手工 kill 掉 MySQL 进程: 其中,mysql.pid 指的是 MySQL 数据目录...

waterandair
2017/11/20
0
0
黑色星期五!!  mysql 数据损坏了~~

3月5日,真是黑色星期五~ 公司的那台sun v440不知为何突然连不上。 马上打电话给朋友,叫他一起去机房一次 到了后用contorl线连接终端一看,居然关机了 日呀 打命令重开服务器,顺利~~~ 接下...

JavaGG
2010/03/24
0
0
How to solve WAMP localhost 500 internal error

今天手贱杀毒选择了自动处理,结果把我的mysql的一个文件被360当做木马处理了!!导致我WAMPSERVER无法启动,mysql数据库也无法连接,你妹。重装mysql后,WAMPSERVER 还是无法启动,重装,结...

BigMaN
2012/11/26
0
2
Linux MySQL 常见无法启动或启动异常的解决方案

Linux MySQL 常见无法启动或启动异常的解决方案   在 Linux 上自建 MySQL 服务器,经常遇到各种无法启动或启动后异常的问题,本文列举一些常见问题的解决办法。   注意:以下错误日志提示...

xiaocao13140
05/24
0
0
MySQL查看和修改表的存储引擎

1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎 两种方法: a、show table status from dbname where name='tablename'; b、show create table table_name; 如果显示的格式...

Amamatthew
2014/09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka如何做到1秒处理1500万条消息?

Apache Kafka 是一款流行的分布式数据流平台,它已经广泛地被诸如 New Relic(数据智能平台)、Uber、Square(移动支付公司)等大型公司用来构建可扩展的、高吞吐量的、且高可靠的实时数据流系统...

架构师springboot
20分钟前
5
0
如何清理Nexus Repository Manager

随着开发运维一体化的理念逐渐深入,持续集成流水线已经成为软件开发的标配。持续集成通过高度自动化的方式,使得构建发布变得非常简单,构建发布次数随之变的越来越多。我们在享受高频次的构...

JasonSE
33分钟前
1
0
聊聊storm的ack机制

序 本文主要研究一下storm的ack机制 实例 SentenceSpout public class AckSentenceSpout extends BaseRichSpout { private ConcurrentHashMap<UUID, Values> pending; private Spo......

go4it
42分钟前
1
0
《netty入门与实战》笔记-05:netty内置的channelHandler

Netty 内置了很多开箱即用的 ChannelHandler。下面,我们通过学习 Netty 内置的 ChannelHandler 来逐步构建我们的 pipeline。 ChannelInboundHandlerAdapter 与 ChannelOutboundHandlerAdap...

Funcy1122
今天
3
0
帧动画(wifi信号动态动画)

准备六张wifi不同信号强度的素材图片,复制到drawable目录中 在drawable目录中新建frame文件,并编写代码 <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> ...

lanyu96
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部