有客户反馈BOSS系统无法查询到6月28日以后的话单纪录,查询数据库后发现在执行对原始话单表执行查询时候偶尔出现
Table '*****' is marked as crashed and should be repaired.
确定计费无误后决定在下班后执行对表的修复工作,因为以前没有进行过此类操作,担心会有问题,看到baidu出的资料提示修复后要重启mysql服务.
于是在下班后完全备份了数据库,执行了数据表修复,修复方法如下:
shell> myisamchk -r [tablename];
看到执行修复操作成功,于是restart mysql ,考虑到以前的mysql重启和其他服务的冲突,运维纪录是要重启server的,于是reboot 了
等再连上后发现数据库在localhost域上是可以登陆的,其他域上无法连接,连接报10061错误.重启mysql服务,无效
没有办法,恢复到备份前的状态,可以访问了,但前一个阶段修复的表不见了,查数据库物理文件是存在的,没有办法,吓坏了我
只好死马当活马医,再次执行了表修复,这次没有急着重启了mysql,发现表出来了,执行查询也正常了,一切OK
看来重启服务不是必须的,至少这次是这样.幸好次几操作都有备份!
但困惑的是第一次执行了修复后重启怎么就连不上server了呢> 

好了,也不明白为什么表会被crash掉,将白皮书上的资料贴下来供参考:

1、错误产生原因,有网友说是频繁查询和更新表造成的索引错误,还有说法为是MYSQL数据库因为某种原因而受到了损坏,如数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能导致MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。
2、myisamchk工具介绍(见mysql的官方手册)

可以使用myisamchk实用程序来获得有关数据库表的信息或检查、修复、优化他们。myisamchk适用MyISAM表(对应.MYI和.MYD文件的表)。

调用myisamchk的方法:

shell> myisamchk [options] tbl_name ...
options指定你想让myisamchk做什么。在后面描述它们。还可以通过调用myisamchk --help得到选项列表。

tbl_name是你想要检查或修复的数据库表。如果你不在数据库目录的某处运行myisamchk,你必须指定数据库目录的路径,因为myisamchk不知道你的数据库位于哪儿。实际上,myisamchk不在乎你正在操作的文件是否位于一个数据库目录;你可以将对应于数据库表的文件拷贝到别处并且在那里执行恢复操作。

如果你愿意,可以用myisamchk命令行命名几个表。还可以通过命名索引文件(用“ .MYI”后缀)来指定一个表。它允许你通过使用模式“*.MYI”指定在一个目录所有的表。例如,如果你在数据库目录,可以这样在目录下检查所有的MyISAM表:

shell> myisamchk *.MYI
如果你不在数据库目录下,可通过指定到目录的路径检查所有在那里的表:
shell> myisamchk /path/to/database_dir/*.MYI
你甚至可以通过为MySQL数据目录的路径指定一个通配符来检查所有的数据库中的所有表:
shell> myisamchk /path/to/datadir/*/*.MYI
推荐的快速检查所有MyISAM表的方式是:

shell> myisamchk --silent --fast /path/to/datadir/*/*.MYI
如果你想要检查所有MyISAM表并修复任何破坏的表,可以使用下面的命令:

shell> myisamchk --silent --force --fast --update-state \
          -O key_buffer=64M -O sort_buffer=64M \
          -O read_buffer=1M -O write_buffer=1M \
          /path/to/datadir/*/*.MYI
该命令假定你有大于64MB的自由内存。关于用myisamchk分配内存的详细信息,参见5.9.5.5节,“myisamchk内存使用”。

当你运行myisamchk时,必须确保其它程序不使用表。否则,当你运行myisamchk时,会显示下面的错误消息:

warning: clients are using or haven't closed the table properly
这说明你正尝试检查正被另一个还没有关闭文件或已经终止而没有正确地关闭文件的程序(例如mysqld服务器)更新的表。

如果mysqld正在运行,你必须通过FLUSH TABLES强制清空仍然在内存中的任何表修改。当你运行myisamchk时,必须确保其它程序不使用表。避免该问题的最容易的方法是使用CHECK TABLE而不用myisamchk来检查表。

转载于:https://www.cnblogs.com/pipelone/archive/2008/07/01/1233536.html

解决mysql表被crash的一次维护始末相关推荐

  1. 解决mysql表不能查询修改删除等操作并出现卡死

    问题现象1:进程wait卡住 测试环境mysql出现了一个怪表:select查询表卡死,alter修改表卡死,甚至我不想要这个表了,delete.truncate.drop表都卡死卡主了...... ...

  2. 解决mysql表输入中文出现问号问题

    文章目录 分析 修改配置文件 修改数据库编码,表编码,表中的列编码 分析 Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F-' for column ...

  3. mysql表出现crash 修复_MySQL表索引损坏致Crash及修复过程实例

    --------------(大量相同的报错)---------------- 2017-08-31T11:11:04.291424Z 32394522 [ERROR] InnoDB: Record ...

  4. mysql表文件被删_mysql表物理文件被误删的解决方法

    前言 1.该方法只介绍了如何救回这个表名(数据不恢复) 如果想要恢复原来数据 直接用extundelete把文件恢复后放回去即可 2.并且是适用于平时没有全备的情况下  如果有全备 直接那全备的frm ...

  5. 解决MYSQL大表问题-实战篇(二)

    #首先上表结构 CREATE TABLE `sys_history` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`did` bigint(20) NOT NUL ...

  6. 解决(springboot项目)mysql表名大写,造成jpa Table doesn‘t exist问题

    解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题 参考文章: (1)解决(springboot项目)mysql表名大写,造成jpa Table ...

  7. mysql导入数据表越来越慢,快速解决mysql导数据时,格式不对、导入慢、丢数据的问题...

    快速解决mysql导数据时,格式不对.导入慢.丢数据的问题 如果希望一劳永逸的解决慢的问题,不妨把你的mysql升级到mysql8.0吧,mysql8.0默认的字符集已经从latin1改为utf8mb ...

  8. 解决mysql锁表终极方法

    很多时候!mysql一不小心就锁表!这里讲解决锁表终极方法! 案例一 mysql>show processlist; 参看sql语句 一般少的话 mysql>kill thread_id; ...

  9. 解决Mysql数据库提示innodb表不存在的问题

    转载来源 :解决Mysql数据库提示innodb表不存在的问题:https://www.jianshu.com/p/31cca5187ab2 发现mysql的error.log里面有报错: InnoD ...

最新文章

  1. python基础教程第二版和第三版有什么区别-《Python基础教程》(第2版修订版)中要注意的地方...
  2. linux下yum源软件服务器的搭建与使用
  3. 网络故障解决方案之非标准子网划分【网管员必懂】
  4. 搜索专题【2010】四2.过河问题
  5. vue :class 动态绑定样式_Notes04vbind动态绑定class
  6. Android之jni编译出现error: jump to label ‘XXXX’ [-fpermissive]解决办法
  7. 算法设计与分析——回溯法——n皇后问题
  8. spring3: Aspectj后置返回通知
  9. SPFA求最短路——Bellman-Ford算法的优化
  10. R语言数据集合并、数据增减、不等长合并
  11. 2019年上半年 系统分析师 论文 真题
  12. CentOS 系统修复
  13. 三种获取当前时间戳的方式
  14. JavaScript基础知识总结(必看篇)
  15. 网上赚钱靠谱的方法,看懂了的都是老手!
  16. OpenGL超级宝典笔记——光照参数与材料属性
  17. 【软件测试】面试老约不到?软件测试简历项目经验怎么写?论项目经验的重要性......
  18. 10个自学编程的学习网站和论坛,都是常去逛的干货网站社区
  19. 色光三原色RGB相加减
  20. 管理员禁止运行此应用的解决办法

热门文章

  1. 分布式资本沈波:未来区块链杀手级应用将出现在“+区块链”
  2. 2013 ACM/ICPC Asia Regional Changsha Online - C
  3. ORACLE HANDBOOK系列之十一:分区(Partition)
  4. 搭建LNMP遇到的问题
  5. 社交网站与网民隐私安全报告(2009)
  6. [JavaScript]return false;和e.preventDefault();的区别
  7. Socket和ServerSocket
  8. linux中rpm、yum、apt-get的关系
  9. python lambda map reduce_简单了解python filter、map、reduce的区别
  10. SQL中基于代价的优化