文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  MySQL 如何处理磁盘空间满的情况

B.3.3.4 MySQL 如何处理磁盘空间满的情况

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

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

当磁盘空间满时,MySQL 会执行以下操作

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

  • 每 10 分钟,它会在日志文件中写入一条条目,警告磁盘空间满的情况。

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

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

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

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

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