crash - 寻找解决方案 Maradb 表因系统突然断电而崩溃
问题描述
***寻找解决方案 Maradb 表在系统突然断电时崩溃 ***
带有 MyISAM 存储引擎 OS Debain 9的 MariaDB-server 版本 10.1
在执行 MySQL 表插入、更新或删除操作期间,每隔 1 秒断电,重启后表崩溃,站点关闭。它很容易重现。
这是 MariaDB 错误日志 020-06-25 9:22:26 3036056384 [ERROR] mysqld:表 './xxx/cw_xyz' 被标记为已崩溃,应该修复 2020-06-25 9:22:26 3036056384 [警告]检查表:'./xxx/cw_xyz' 2020-06-25 9:22:26 3036056384 [错误] mysqld:表'./xxx/cw_xyzz'被标记为崩溃,应该修复
考虑到解决方案突然断电,有什么建议可以摆脱这个问题?
解决方案
表 './xxx/cw_xyz' 被标记为崩溃,应该修复
这意味着该表是 Engine=MyISAM。
该引擎有一个不幸的缺陷,即电源故障通常会使某些表处于该状态。 CHECK TABLE
通常REPAIR TABLE
是解决方法。但这很麻烦。
另一方面,Engine=InnoDB 的工作方式不同,并且没有那个特定的问题。InnoDB 几乎总是完全修复崩溃时发生的任何事情。此外,与 MyISAM 不同,它使表处于一致状态。
推荐阅读
- materialize - 在轮播中设置一张图像而不进行任何移动
- reactjs - 如何使用 reactjs 集成/访问 getorgchart
- postgresql - 如何在 Postgres 的 ANY 运算符中传递值(数据库中不存在)
- android - SignalR 在 Android 9.0 中出现问题
- python - 获取 tkinter 窗口的标题名称
- scala - 是否可以将 DataFrame 的数据添加到现有的 csv 文件中?
- reactjs - 品牌和常规 fonawesome 未呈现
- python - 当 plt.show() 不受控制时捕获图形 [python]
- wildfly - wildfly 14 + pooled-connection-factory min-pool-size
- delphi - 有保证访问 nil 指针会引发异常吗?