【问题标题】:mysql table crashes only when replica server runningmysql 表仅在副本服务器运行时崩溃
【发布时间】:2020-11-17 12:48:40
【问题描述】:

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

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

我想知道这是否与二进制日志有关。但是,当二进制日志正在运行但副本已关闭时,似乎不会发生这种情况。

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

【问题讨论】:

  • 更改为 InnoDB。
  • @RickJames 你能把它作为答案并解释原因,我会将其标记为接受答案吗?

标签: mysql database-replication myisam


【解决方案1】:

表 '...' 被标记为崩溃,应该修复”。

当 MySQL 服务器被粗鲁地重新启动时(通常)会发生该错误,并且表是 ENGINE=MyISAM。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2021-08-25
    • 2012-05-02
    • 2014-06-02
    • 2014-12-20
    • 2011-03-29
    • 2013-12-03
    相关资源
    最近更新 更多