首页 > 解决方案 > MYSQL 数据库修复耗时极长

问题描述

我有一个大小约为 7GB 的 MYSQL MISAM 表,并且有相当多的索引。该表昨天损坏了,我的 MYSQL 修复工作现在已经工作了 12 多个小时。

我想知道这样一个表的 MYSQL 修复实际需要多长时间?(由于修复正在运行,我目前无法准确获得行数和确切大小)。

我使用的变量是:

| myisam_max_sort_file_size | 9223372036853727232  |
| myisam_mmap_size          | 18446744073709551615 |
| myisam_recover_options    | FORCE                |
| myisam_repair_threads     | 1                    |
| myisam_sort_buffer_size   | 268435456
| read_buffer_size     | 67108864 |
| read_only            | OFF      |
| read_rnd_buffer_size | 4194304

由于使用 GODADDY 托管主机,我无法更改任何全局变量。

修复一直是国家所见的“分类修复”。有没有其他方法可以加快这个修复过程?

谢谢

编辑:我的内存和 CPU 使用情况如下图所示 在此处输入图像描述

我还尝试从 2 天前的备份(恢复到新数据库)中恢复数据库,过去 5 小时它也停留在同一张表上的“使用 keycache 修复”上。

我尝试了 mysqlcheck 和 REPAIR TABLE,而不是 myisamchk,因为我无法访问 /var/lib/mysql 中的特定数据库文件夹,这会导致 Permission Denied 错误。以及 myisamchk 空命令给出命令未找到。

标签: mysqlmyisam

解决方案


应该需要几分钟。如果 12 小时后仍未完成,则它可能挂起并且永远不会完成。

MyISAM 已经有十多年没有真正得到维护了,你很可能遇到了一个错误。myisamchk如果您可以掌握原始数据库文件,您可能会有更好的机会。


推荐阅读