欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySQL处理磁盘满的方式

程序员文章站 2022-06-15 09:42:34
...

本文主要介绍了MySQL响应磁盘满错误的方式(如设备上无剩余空间),以及响应超配 额错误的方式(如写入失败或达到了用户屏蔽限制)。 本文介绍的内容与写入MyISAM表有关。它也适用于写入二进制日志文件和二进制索引文件,但对 row和record的应用应被视为event。

  本文主要介绍了MySQL响应磁盘满错误的方式(如“设备上无剩余空间”),以及响应超配 额错误的方式(如“写入失败”或“达到了用户屏蔽限制”)。

  本文介绍的内容与写入MyISAM表有关。它也适用于写入二进制日志文件和二进制索引文件,但对 “row”和“record”的应用应被视为“event”。

  出现磁盘满状况时,MySQL将:

  每分钟检查一次,查看是否有足够空间写入当前行。如果有足够空间,将继续,就像什么也未发生一 样。

  每10分钟将1个条目写入日志文件,提醒磁盘满状况。

  为了减轻问题,可采取下述措施:

  要想继续,仅需有足够的磁盘空间以插入所有记录。

  要想放弃线程,必须使用mysqladmin kill。下次检查磁盘时将放弃线程(1分钟)。

  其他线程可能会正在等待导致磁盘满状况的表。如果有数个“已锁定”的线程,,杀死正在 磁盘满状况下等待的某一线程,以便允许其他线程继续。

  对前述行为的例外是,当你使用REPAIR TABLE或OPTIMIZE TABLE时,或当索引是在LOAD DATA INFILE 或ALTER TABLE语句后、在批操作中创建的。所有这些语句能创建大的临时文件,如果保留这些文件,会 导致系统其他部分出现大问题。如果在MySQL执行这类操作的同时磁盘已满,它将删除大的临时文件,并 将表标注为崩溃。但对于ALTER TABLE例外,旧表保持不变。