Восстановление MySQL

База данных MySQL - это достаточно надёжный инструмент. Но иногда происходит беда, в результате которой может произойти повреждение таблиц. К счастью, в MySQL есть встроенный инструмент восстановления повреждённых таблиц.

Восстановление таблиц в базе MySQL

Если сайт перестал работать из-за сбоя соединения с базой данных, то стоит включить вывод ошибок и посмотреть на сообщение от MySQL.
Чтобы сайт начал показывать ошибки на странице, необходимо в PHP код страницы, до места, где возникает ошибка, поставить строки:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Тогда на странице сайта будет показываться описание ошибки.
Если сайт говорит, что у одной из таблиц в базе данных, которую он использует, есть нечитаемая со статусом "corrupted", то вполне возможно, что всё не так уж и плохо. Ведь повреждённую таблицу в базе данных можно восстановить. Повреждение таблицы может возникать в разных случаях, к примеру, во время пиковых нагрузок, когда к базе данных, когда приходит слишком много запросов.

Для начала необходимо проверить статус таблицы. Для попробуйте выполнить SQL команду
CHECK TABLE имя_таблицы;
Если таблица в порядке, то результат выполнения будет такой:
+-------------+-------+----------+----------+
|    Table    | Op    | Msg_type | Msg_text |
+-------------+-------+----------+----------+
| имя_таблицы | check | status   | OK       |
+-------------+-------+----------+----------+
Если статус таблицы не "OK" а "corrupted" или какой-нибудь другой, который указывает на проблему, то необходимо восстановить таблицу. Делается это командой:
REPAIR TABLE имя_таблицы;
Этого хватает для починки 99% проблемных таблиц. Зачастую это таблицы типа MyISAM, которые не так надёжны, как InnoDB. Поэтому рекомендую перевести повредившиеся таблицы в тип InnoDB. Делается это с помощью SQL команды:
ALTER TABLE имя_таблицы ENGINE = INNODB;
К сожалению, InnoDB проигрывают по скорости в некоторых операциях MyISAM. Особенно если в таблице не много данных (не десятки гигабайт, а пара мегабайт). Но таблицы типа InnoDB надёжнее.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, покупка SSL сертификатов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: