在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

如何进行MySQL修复表的简单分析

127次阅读
没有评论

共计 3327 个字符,预计需要花费 9 分钟才能阅读完成。

如何进行 MySQL 修复表的简单分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

今天有个同事问我一个数据库的问题,如果开始他就把环境细节全都告诉我,可能我就知难而退了。等我大体明白了问题之后,发现好像背景比我想的要复杂多了。这是一个远程云主机环境,windows 系统,运行着 MySQL, 在查询表时出现了问题,而且开发同事经过了 repair 也没有修复,说会卡住没有响应。

当然费了一点功夫,好容易连接到了这台云主机,发现问题似乎比我想的还要复杂一些。当然这是一个内部某一个团队使用的一个环境,可能是确实需要用到环境,大家才不得不想办法修复。

  环境是 MySQL 5.5 版本,查看后台日志发现从 8 月份就开始有错误了,错误信息如下:

161018 11:15:35 [ERROR] D:\websoft\mysql\bin\mysqld: Table .\utestdb\test_forum_post is marked as crashed and should be repaired
161018 11:15:36 [ERROR] D:\websoft\mysql\bin\mysqld: Table .\utestdb\test_forum_post is marked as crashed and should be repaired 而且看日志损坏的还不止一张表,我的注意力暂时先放在了出错的表上。

如果使用 show create table  test_forum_post 或者 desc test_forum_post 都会抛出错误。

mysql show create table test_forum_post;
ERROR 145 (HY000): Table .\utestdb\test_forum_post is marked as crashed and should be repaired

更让我有些胆战心惊的是,我可以从后台的日志看到开发同事也尝试了多次重启 MySQL 服务。但是问题始终存在。

show create table 得不到信息,而 show table status 得到的信息也很有限,因为此时的存储引擎显示为 NULL

他们用的是 MyISAM, 查看了其它所有的表的存储引擎,发现清一色都是 MyISAM. 所以我就可以基本断定这个出问题的表也是 MyISAM

对于 MyISAM 表修复,可以用 myisamchk 来做或者使用 repair 的方式都可以,当然发现又是碰到不少问题。

D:\websoft\mysql\bin myisamchk.exe -of ..\data\utestdb\test_forum_post.MYI
这个命令运行下去,竟然弹出了一个窗口显示程序崩溃,反复尝试都是如此。

使用 repair 命令来看,发现迟迟没有返回,果断停止。

肯定是哪里漏掉了,我重新翻过头来梳理问题。

查看日志发现之前有下面的一些输出,看起来是磁盘空间的问题。

161219 18:07:09 [Warning] Disk is full writing
.\distoon\pre_common_block.TMD (Errcode: 28). Waiting for someone to
free space… (Expect up to 60 secs delay for server to continue after
freeing disk space)
161219 18:07:09 [Warning] Retry in 60 secs. Message reprinted in 600 secs
161219 18:07:18 [ERROR] D:\websoft\mysql\bin\mysqld: Table .\utestdb\test_forum_post is marked as crashed and should be repaired

经过确认发现确实是磁盘空间导致,他们马上清理预留出一些空间,然后让我继续帮忙修复,再次尝试就没有问题了。

先使用 -of 选项

D:\websoft\mysql\bin myisamchk.exe -of ..\data\utestdb\test_forum_post.MYI
– recovering (with keycache) MyISAM-table ..\data\utestdb\test_forum_post.MYI
Data records: 0
Data records: 55311

接着使用 - r 选项修复

D:\websoft\mysql\bin myisamchk.exe -r ..\data\utestdb\test_forum_post.MYI
– recovering (with sort) MyISAM-table ..\data\utestdb\test_forum_post.MYI
Data records: 55311
– Fixing index 1
– Fixing index 2
– Fixing index 3
– Fixing index 4
– Fixing index 5
– Fixing index 6
– Fixing index 7
– Fixing index 8

最后汇总检查

D:\websoft\mysql\bin myisamchk.exe  ..\data\utestdb\test_forum_post.MYI
Checking MyISAM file: ..\data\utestdb\test_forum_post.MYI
Data records:  55311  Deleted blocks:  0
– check file-size
– check record delete-chain
– check key delete-chain
– check index reference
– check data record references index: 1
– check data record references index: 2
– check data record references index: 3
– check data record references index: 4
– check data record references index: 5
– check data record references index: 6
– check data record references index: 7
– check data record references index: 8
– check record links 再次查看问题就不存在了。

当然如果尝试使用 repair 也是可行的, 比如修复表 pre_common_member,输出如下:

mysql repair table pre_common_member;
+—————————-+——–+———-+———-+
| Table  | Op  | Msg_type | Msg_text |
+—————————-+——–+———-+———-+
| utestdb.pre_common_member | repair | status  | OK  |
+—————————-+——–+———-+———-+
1 row in set (1.64 sec)

为了把问题补充全面一些,我把问题略微改动下,即 使用 myisamchk 工具和 check/repair 命令有什么区别呢.

首先 myisamchk 和 repair 只能修复 MyISAM 表,相比来说,myisamchk 的输出信息要更详细一些,优化,分析表的信息都会输出,repair 则比较直接,repair 无法修复 InnoDB 的表,否则会报出如下的错误。

The storage engine for the table doesn t support repair

check 则同时支持 MyISAM 表和 InnoDB 表

其次 myisamchk 操作 myisam 表时必须保证表不能被使用,check/repair 则可以在线操作。

看完上述内容,你们掌握如何进行 MySQL 修复表的简单分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计3327字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产 欧美日韩 在线播放 | 精品久久久久久久免费人妻 | 亚洲国产成人久久午夜 | 偷拍小视频99在线 | 成年人在线视频网站 | 国内精品 第一页 | 亚洲a∨无码精品色午夜 | 亚洲精品夜夜夜妓女网 | 孕妇怀孕高潮潮喷视频孕妇 | 精品久久久久中文字幕一区 | 久久精品在这里 | 欧美精品专区免费观看 | 美女张开腿黄网站免费下载 | 一级做c爱全免费视频 | 青青草国产精品欧美成人 | 日韩福利在线观看 | 亚洲国产一二三精品无码 | 成人99 | 在线成人国产 | 杨幂一级做a爰片性色毛片 夭天干天天做天天免费看 妖精色av无码国产在线看 | 青青青看免费视频在线 | 狠狠色综合tv久久久久久 | 国产色婷婷五月精品综合在线 | 欧美日韩欧美 | 狠狠色噜噜狠狠狠777米奇 | 丰满岳乱妇一区二区三区 | 人妻人人添人妻人人爱 | 美女大量吞精在线观看456 | 在线观看免费福利 | 国产三级中文字幕 | 日本丰满的人妻hd高清在线 | 草草线禁成18年在线视频 | 综合亚洲一区二区三区 | 福利小视频在线 | 色噜噜av亚洲色一区二区 | 免费色在线 | 伊人久在线观看视频 | 日本少妇又色又爽又高潮 | 日本日本乱码伦视频在线观看 | 任你敢不一样精品的视频 | 视频精品一区二区 |