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

Как выполнять обслуживание MySQL, особенно после заполнения диска

У меня довольно большая база данных mysql (InnoDB), работающая на виртуальной машине сервера ubuntu. Недавно по моей вине жесткий диск переполнился (на физической машине), сервер завис, и пользователи не могли работать. Мне пришлось удалить некоторые файлы с физического компьютера и перезапустить сервер ubuntu с базой данных MySQL.

  1. Есть ли что-нибудь особенное, что мне нужно выполнить в MySQL после такого сбоя?
  2. Есть ли что-то особенное, что мне нужно выполнить на сервере ubuntu? (например, chkdsk или дефрагментация)
  3. Нужно ли периодически запускать какие-либо "передовые" команды в базе данных MySQL?
  1. Нет, но проверьте журналы на наличие предупреждений и ошибок. При определенных обстоятельствах вам может потребоваться РЕМОНТ.
  2. Нет, если вам нужно проверить файловую систему, вам будет предложено выполнить ее или запустить автоматически. эквивалент для Linux - это fsck (проверка файловой системы). Как это работает, полностью зависит от используемой файловой системы.
  3. Таблица OPTIMIZE может очистить неиспользуемое пространство (т.е.если много данных было изменено или удалено). В зависимости от вашей схемы и использования данных он может оказаться полезным, а может и не оказаться. Опять же, будьте осторожны при запуске, MySQL блокирует таблицу во время выполнения.

Хотя это прекрасные вопросы, которые вы задаете, настоящей первопричиной этого было переполнение файловой системы. Вот проблема, которую вам нужно решить:

  1. Если основной функцией этого компьютера является сервер базы данных, база данных MySQL должна находиться в собственном разделе. Если это всего лишь второстепенная функция, по крайней мере, убедитесь, что / var отключен в своем собственном разделе (или в базовом каталоге независимо от того, где находится ваш каталог данных MySQL). У вас не должно быть возможности вывести MySQL из строя, добавляя файлы в / home или /

  2. Вы должны быть предупреждены о файловых системах, которые слишком близки к заполнению. Nagios или hyperic могут сделать это за вас, а также за множество других проверок и предупреждений, которые могут предупредить вас о потенциальных опасностях.

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

Для Mysql вы можете использовать команды mysql оптимизации и восстановления таблицы, но вы должны быть осторожны, так как эти команды могут занять много времени и требуют блокировки таблицы. Вы можете посмотреть документацию mysql для получения дополнительной информации.