Диск сервера заполнен, служба Mysql не может запуститься, как мне сжать базу данных?

Диск сервера заполнен, служба Mysql не может запуститься, как мне сжать базу данных?

У меня сейчас серьезная проблема. Диск VPS заполнен, база данных MySQL неожиданно выросла, и я не могу купить больше места на хостинге, так как оно уже заполнено.

Служба MySQL больше не может быть запущена из-за нехватки места на диске.

Есть ли способ выполнять запросы к базе данных при выключенном сервисе? Но, полагаю, для этого потребуются какие-то сторонние инструменты, а место на сервере не позволяет этого сделать. Если я не ошибаюсь, даже если я удалю некоторые старые данные из базы данных, она все равно не уменьшится.

Я даже не могу загрузить все файлы базы данных на свой компьютер и попытаться восстановить их там, потому что они настолько огромны, что у меня нет диска, на который они могли бы поместиться.

Какие у меня сейчас варианты? Есть ли у кого-нибудь идеи, что мне делать дальше?

решение1

MySQL не работает как root, так что у вас, вероятно, все еще есть «зарезервированное» свободное пространство. Вы можете вернуть его: tune2fs -m 0 /dev/whatever.

Вы не сказали, какая у вас ОС, но, вероятно, есть место, которое вы можете освободить в другом месте. Если у вас Ubuntu, попробуйте apt clean. Удалить файлы журналов из /var/log/*, и т. д.

Если вы все еще можете что-то установить, установите ncduи сделайте это ncdu -x /, чтобы получить простой обзор того, что следует удалить.

Также, трюк, который я часто использую, это иметь где-то фиктивный файл в несколько сотен МБ, который можно удалить, если вы столкнетесь с такой ситуацией. Это, и мониторинг, конечно.

Как только у вас появится место, вам придется запустить OPTIMIZE TABLEна проблемной таблице. Однако это приведет к пересозданию, поэтому для этого вам понадобится дополнительное место. Кроме того, для этого требуется запуск с innodb_file_per_table, что в настоящее время является значением по умолчанию.

Связанный контент