Назад | Перейти на главную страницу

диск заполнен из-за tmpdir, можно ли перезапустить?

Мой диск заполнен, файл .MAD в tmpdir занимает все место в файловой системе (179 ГБ из 189 ГБ)

из журнала:

[Предупреждение] mysqld: Диск полностью записывает '/var/tmp/#sql_b6f_0.MAD' (код ошибки: 28). Жду, пока кто-нибудь освободит место

Могу ли я остановить работу mariadb, или мне нужно сначала освободить место, а затем остановить его?

Я смог сделать service mysqld stop и это удалило файлы в tmpdir, что решило проблему ....

Ааааа, я искал исправление ровно 5 часов! Однако я довольно новичок, так что да ... Мы запускаем нашу MariaDB на сервере SUSE Linux в производстве, поэтому остановка всей службы mysql не была для меня хорошим вариантом.

Я запустил select запрос с вложенными выборками с использованием order by и inner join и это была моя точная ошибка:

Код ошибки: 1021 Диск заполнен (/ tmp / # sql_xxx_y.MAI); ждем, пока кто-нибудь освободит место ... (ошибка: 28 «На устройстве не осталось места»)

Подключившись к серверу и запустив

cd /tmp
ls -al

или

ls-lh

Я смог найти виновных: #sql_xxx_y.СУМАСШЕДШИЙ (размером с мое общее доступное пространство на разделе tmp) и #sql_xxx_y.MAI размер 8К (это должен быть временный запрос). Также файл * .MAD будет постоянно обновлять свою дату - еще один индикатор того, что запрос все еще выполняется!

Итак, эта ветка и этот другой помогли мне разобраться:

mysql -u root -p
show processlist;
kill "thread_id (number in 1st col of the faulty query)";

Я побежал show processlist; дважды после этого: 1-й раз он показал мой запрос как убит, второй раз мой запрос исчез из списка и .СУМАСШЕДШИЙ и .MAI файлы исчезли, и мое дисковое пространство вернулось на место.

Примечание: к счастью, мой «ошибочный» запрос был произвольным, не изменял никаких таблиц и не был настроен на регулярный запуск / от какого-либо веб-сервиса или клиента в производстве. Так что будьте осторожны, если ваша ситуация отличается, то все те темы, где кто-то вроде меня может легко потратить 5 часов, все еще могут быть полезны: D