У меня довольно большая база данных mysql (InnoDB), работающая на виртуальной машине сервера ubuntu. Недавно по моей вине жесткий диск переполнился (на физической машине), сервер завис, и пользователи не могли работать. Мне пришлось удалить некоторые файлы с физического компьютера и перезапустить сервер ubuntu с базой данных MySQL.
Хотя это прекрасные вопросы, которые вы задаете, настоящей первопричиной этого было переполнение файловой системы. Вот проблема, которую вам нужно решить:
Если основной функцией этого компьютера является сервер базы данных, база данных MySQL должна находиться в собственном разделе. Если это всего лишь второстепенная функция, по крайней мере, убедитесь, что / var отключен в своем собственном разделе (или в базовом каталоге независимо от того, где находится ваш каталог данных MySQL). У вас не должно быть возможности вывести MySQL из строя, добавляя файлы в / home или /
Вы должны быть предупреждены о файловых системах, которые слишком близки к заполнению. Nagios или hyperic могут сделать это за вас, а также за множество других проверок и предупреждений, которые могут предупредить вас о потенциальных опасностях.
Для файловой системы это должно выполняться автоматически, если вы используете файловую систему с журналированием.
Для Mysql вы можете использовать команды mysql оптимизации и восстановления таблицы, но вы должны быть осторожны, так как эти команды могут занять много времени и требуют блокировки таблицы. Вы можете посмотреть документацию mysql для получения дополнительной информации.