Documentation Home

B.3.3.4 MySQL如何处理满盘

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

此部分与写入 MyISAM表有关。它还适用于写入二进制日志文件和二进制日志索引文件,除了对记录的引用 应理解为事件”。

当磁盘已满情况发生时,MySQL 执行以下操作:

  • 它每分钟检查一次以查看是否有足够的空间来写入当前行。如果有足够的空间,它会像什么都没发生一样继续。

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

要缓解此问题,请执行以下操作:

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

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

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

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