Способы и средства мониторинга состояния таблиц MySQL?

В последнее время началась какая-то ерунда, время от времени ломаются таблицы. При этом таблица, например, может быть доступна для выборки, но недоступна для записи. Или вообще недоступна. Все, что нужно сделать, это выполнить REPAIR TABLE. Я не понимаю, почему сам Мускуль, понимая всю ситуацию, не может выполнить сам эту команду при поломке, ведь других средств починить таблицу вроде как и нет.


В связи с этим, собираюсь написать скрипт, который в полночь будет делать CHECK TABLE всех значимых таблиц и делать REPAIR поломанным.


Собственно, вопрос: это вообще нормальное решение? Существуют ли какие-то цивилизованные средства решения подобных проблем, какие-то утилиты для мониторинга или некий autorepair?


Спасибо.
  • Вопрос задан
  • 3157 просмотров
Пригласить эксперта
Ответы на вопрос 4
XaosSintez
@XaosSintez
Если у Вас таблицы MyISAM — попробуйте заменить их на INNODB, нам в одном проекте это помогло. Насколько я понимаю, MyISAM плохо держит большие и часто обновляемые таблицы. Поэтому они и крашатся. А вообще — надо искать источник проблемы, скорее всего это жесткий диск (у вас RAID? ). По возможности кэшируйте запросы, чтобы разгрузить БД
Ответ написан
javenue
@javenue
Как вариант — подойдет, но лушче делать не раз в сутки, а чаще, например, раз в час. Запись в критичные таблицы лучше лочить на уровне какого-то адаптера, делать проверку скриптом на поломанность, в случае чего — чинить, а потом открывать лок.

А вообще — стоит хотя бы попробовать найти причину поломки таблиц. Может где-то на форумах найдете описание похожих проблем. Как вариант — попробуйте обновить версию СУБД, может это баг и он уже исправлен.
Ответ написан
opium
@opium
Просто люблю качественно работать
Разберитесь сначала почему они ломаются, костыли вас не спасут.
Ответ написан
@phasma
Может это проблемы с диском?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы