mysql table 仅在副本服务器 运行 时崩溃

mysql table crashes only when replica server running

我有一个经常崩溃的 table,但似乎只有在副本为 运行 时才会崩溃。

table是MyISAM。 table 有 2 个 mediumtext 字段。我在执行删除语句时得到的错误是:“一般错误:1194 Table 'outlook_emails' 被标记为已崩溃,应该修复”。

不知道是不是和二进制日志有关。但是,当二进制日志 运行 但副本已关闭时似乎不会发生。

知道发生了什么或者我可以做些什么来解决它或进一步调查吗?

Table '...' is marked as crashed and should be repaired".

当 MySQL 服务器被粗鲁地重新启动时, table 是 ENGINE=MyISAM。

临时修复是 运行 CHECK TABLE,然后会建议您 运行 REPAIR TABLE。工具 myisamchk 是一种方便的方法,特别是因为可能有多个 table 如此标记。

引擎 InnoDB 具有完全不同的内部结构。它避免了 MyISAM 的特定问题,并且在从崩溃中恢复方面做了更彻底的工作。

切换到 InnoDB 需要 ALTERing 你的 table。这里有更多讨论:http://mysql.rjweb.org/doc.php/myisam2innodb