存档表损坏

时间:2011-05-11 11:54:53

标签: mysql

我的作品中ARCHIVE表已损坏。

我试过

REPAIR TABLE TBL_NAME;

无法修复表格。只有MyISAM表支持修复吗?

我丢弃了桌子,重新创建了它,然后从我已经拥有的转储中恢复了它。

Q1:处理这种情况可能是更好的选择?
Q2:为什么数据库/表经常被破坏?
问题3:我们可以采取哪些措施来防止表格损坏?

2 个答案:

答案 0 :(得分:3)

Q1:处理这种情况可能是更好的选择吗?

鉴于这种情况,我认为你所做的是最好的解决方案。有一个名为ARCHIVE的{​​{1}}引擎恢复工具,如果您没有备份,可能可以帮助您恢复行

你有备份的事实很好,并把你救了。如果您希望能够执行完全恢复,则可能值得启用二进制日志记录或添加复制的从属服务器。

Q2:为什么数据库/表经常被破坏?

在正常操作中他们不应该。我会查看你的MySQL错误日志,看看是否有任何错误消息对应于表崩溃的时间。服务器上的磁盘或其他问题可能会使表更可能损坏表。也许您在archive_reader引擎中发现了一个错误?

问题3:我们可以采取哪些措施来防止表格损坏?

正如Q2中提到的那样,可以很好地查找错误消息。如果您发现可以预测复制崩溃表,请确保提交MySQL错误报告。

答案 1 :(得分:-1)

FOR MyISAM表: -

1)使用myisamchk识别所有损坏的表

2)使用myisamchk -r

修复损坏的表

如果您的应用程序和其他表仍然使用这些表。要避免此错误消息,请在执行修复之前关闭mysqld,如果您能够在一段时间内关闭数据库。如果没有,请使用FLUSH TABLES强制mysqld刷新仍在内存中的任何表修改

您还可以对整个MySQL数据库一起执行检查和修复 示例: myisamchk --silent --force --fast --update-state ..... *。MYI