• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MYSQL数据表损坏的原因分析和修复方法_MySQL

mysql 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论

1.表损坏的原因分析
  
  以下原因是导致mysql表毁坏的常见原因:
  
  1、服务器突然断电导致数据文件损坏。
  
  2、强制关机,没有先关闭mysql服务。
  
  3、mysqld进程在写表时被杀掉。
  
  4、使用myisamchk的同时,mysqld也在操作表。
  
  5、磁盘故障。
  
  6、服务器死机。
  
  7、mysql本身的bug。
  
  2.表损坏的症状
  
  一个损坏的表的典型症状如下:
  
  1、当在从表中选择数据之时,你得到如下错误:
  
  Incorrectkeyfilefortable:'…'.Trytorepairit
  
  2、查询不能在表中找到行或返回不完全的数据。
  
  3、Error:Table'p'ismarkedascrashedandshouldberepaired。
  
  4、打开表失败:Can’topenfile:‘×××.MYI’(errno:145)。
  
  5、
  
  3.预防MySQL表损坏
  
  可以采用以下手段预防mysql表损坏:
  
  1、定期使用myisamchk检查MyISAM表(注意要关闭mysqld),推荐使用checktable来检查表(不用关闭mysqld)。
  
  2、在做过大量的更新或删除操作后,推荐使用OPTIMIZETABLE来优化表,这样既减少了文件碎片,又减少了表损坏的概率。
  
  3、关闭服务器前,先关闭mysqld(正常关闭服务,不要使用kill-9来杀进程)。
  
  4、使用ups电源,避免出现突然断电的情况。
  
  5、使用最新的稳定发布版mysql,减少mysql本身的bug导致表损坏。
  
  6、对于InnoDB引擎,你可以使用innodb_tablespace_monitor来检查表空间文件内文件空间管理的完整性。
  
  7、对磁盘做raid,减少磁盘出错并提高性能。
  
  8、数据库服务器最好只跑mysqld和必要的其他服务,不要跑其他业务服务,这样减少死机导致表损坏的可能。
  
  9、不怕万一,只怕意外,平时做好备份是预防表损坏的有效手段。
  
  4.MySQL表损坏的修复
  
  MyISAM表可以采用以下步骤进行修复:
  
  1、使用reapairtable或myisamchk来修复。
  
  2、如果上面的方法修复无效,采用备份恢复表。
  
  具体可以参

本文来源gao!%daima.com搞$代*!码9网(

考如下做法:
  
  阶段1:检查你的表
  
  如果你有很多时间,运行myisamchk*.MYI或myisamchk-e*.MYI。使用-s(沉默)选项禁止不必要的信息。
  
  如果mysqld服务器处于宕机状态,应使用–update-state选项来告诉myisamchk将表标记为'检查过的'。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MYSQL数据表损坏的原因分析和修复方法_MySQL
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址