Восстановление 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, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: