文档首页
MySQL 9.0 参考手册
相关文档 下载此手册
PDF (美国信纸) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  MySQL 如何处理磁盘已满

B.3.3.4 MySQL 如何处理磁盘已满

本节介绍 MySQL 如何响应磁盘已满错误(例如 设备上没有剩余空间),以及配额超出错误(例如 写入失败用户块限制已达)。

本节与写入 MyISAM 表有关。它也适用于写入二进制日志文件和二进制日志索引文件,只是对 记录 的引用应理解为 事件

当出现磁盘已满情况时,MySQL 会执行以下操作

  • 每分钟检查一次,查看是否有足够的空间写入当前行。如果空间足够,则继续执行,就像没有发生任何事情一样。

  • 每 10 分钟向日志文件写入一条条目,警告磁盘已满情况。

为了缓解问题,请采取以下措施

  • 要继续执行,您只需释放足够的空间来插入所有记录。

  • 或者,要中止线程,请使用 mysqladmin kill。线程将在下次检查磁盘(一分钟后)时中止。

  • 其他线程可能正在等待导致磁盘已满的表。如果您有多个 已锁定 线程,则杀死正在等待磁盘已满情况的一个线程,可以使其他线程继续执行。

对上述行为的例外情况是使用 REPAIR TABLEOPTIMIZE TABLE,或者在 LOAD DATAALTER TABLE 语句之后分批创建索引。所有这些语句都可能创建大型临时文件,如果任其自行处理,会给系统其余部分带来巨大问题。如果在 MySQL 执行这些操作时磁盘已满,它会删除大型临时文件并将表标记为崩溃。例外情况是,对于 ALTER TABLE,旧表保持不变。