A.4.3 Как MySQL реагирует на переполнение диска
Когда возникает ситуация переполнения диска, MySQL реагирует следующим
образом:
Один раз в минуту сервер проверяет, достаточно ли места для записи
текущей строки. Если места достаточно, то сервер продолжает работу так,
как будто ничего не произошло.
-
Каждые 6 минут сервер помещает в журнальный файл запись с
предупреждением о ситуации переполнения диска.
Для снижения остроты проблемы можно принять следующие меры:
-
Чтобы продолжать работу, необходимо просто освободить на диске место,
достаточное для вставки всех записей.
-
Чтобы прервать поток, необходимо послать потоку
mysqladmin kill
. Поток
будет аварийно прекращен, когда он в следующий раз проверит диск (в
течение 1 минуты).
-
Учтите, что таблицу, вызвавшую ситуацию переполнения диска, могут
ожидать другие потоки. Если существует несколько "блокированных" потоков,
то удаление одного потока, ожидающего по причине переполнения диска,
позволит продолжаться другим.
Исключение составляет использование REPAIR
или OPTIMIZE
, а также случай,
когда индексы создаются в пакете после команды LOAD DATA INFILE
или ALTER
TABLE
.
Все упомянутые команды могут использовать большие временные файлы,
которые, если их оставить без внимания, могут вызвать большие проблемы во
всей системе. Если MySQL сталкивается с переполнением диска при выполнении
одной из указанных операций, то сервер удаляет большие временные файлы и
отмечает таблицу как поврежденную (за исключением ALTER TABLE
, для
которого старая таблица остается без изменений).