文档章节

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

robortly
 robortly
发布于 2016/06/28 09:49
字数 843
阅读 73
收藏 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
146
0
文件系统损坏导致数据文件异常恢复----惜分飞

今天接到一个客户的服务请求,由于服务器被强制重启,数据库无法启动 ORA-1200报错 这是一个常见的ORA-1200错误,但是文件大小相差的有离谱实际大小729600个block,但是现在只有149760个block.不...

xifenfei
11/19
0
0
Linux MySQL 常见无法启动或启动异常的解决方案

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

xiaocao13140
05/24
0
0
How to solve WAMP localhost 500 internal error

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

BigMaN
2012/11/26
0
2

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 自定义你的空间

通过对你的空间进行界面的自定义能够让你的空间更加出类拔萃。 如果你具有空间管理员权限,你可以修改你空间的颜色配色,添加你自己的空间标识,选择是否在你空间中显示边栏。或者你可以进入...

honeymose
59分钟前
1
0
Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
3
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0
Cnn学习相关博客

CNN卷积神经网络原理讲解+图片识别应用(附源码) 笨方法学习CNN图像识别系列 深度学习图像识别项目(中):Keras和卷积神经网络(CNN) 卷积神经网络模型部署到移动设备 使用CNN神经网络进行...

-九天-
昨天
5
0
flutter 底部输入框 聊天输入框 Flexible

想在页面底部放个输入框,结果键盘一直遮住了,原来是布局问题 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("评论"), ...

大灰狼wow
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部