О web-разработке
и даже немного больше...

Восстановление таблиц MyISAM после сбоя

Сбои в работе сервера MySQL как правило могут оставлять за собой хвост проблем, которые начинают выявляться постепенно, выливаясь в конечном итоге в проблемы с таблицами. Характерные признаки при наличии ошибок в таблицах базы данных могут быть абсолютно разные, наиболее популярные из них это:

— Процесс mysqld грузит процессор по полной;
— Значительное торможение при обращении к проблемной таблице, как правило, проявляется на работе сайта, в определенных местах (там, где происходит обращение к таблице);
— Сайт улетает в долгие думы из-за долгого ответа сервера MySQL;
— Торможение при обращении к любой таблице;
— Падение процесса mysqld;
— И пожалуй, самый яркий признак проблемы с таблицами базы данных, это возникновение такой ошибки при старте: ERROR 144 (HY000) at line 1: Table ‘./dataBase/table’ is marked as crashed and last (automatic?) repair failed;

Теперь приступим к решению проблемы. Гарантии 100% восстановления таблиц базы данных после сбоя быть не может, и это нужно понимать и быть готовым к такому раскладу. Однако в есть решения, которые в значительной степени могут исправить ситуацию, а быть может и оправдать возложенные на них надежды, в общем, дело случая.

Для проверки и восстановления таблиц MyISAM в MySQL есть утилита myisamchk, которую можно использовать так же для получения информации о таблицах базы данных и оптимизации. Если говорить об оптимизации, то для большинства случаев можно так же воспользоваться командой OPTIMIZE TABLES, есть нюансы, этот вариант не такой быстрый, и не такой надежный (в случае фатальных ошибок) как myisamchk. Исправление ошибок с помощью myisamchk достаточно безопасно, но сделать резервную копию все-таки стоит, т.к. в таблицу могут быть внесены значительные изменения.

Остановите сервер MySQL перед проверкой таблиц:

/etc/init.d/mysql stop

Для старта проверки и восстановления таблиц MySQL выполняем такую команду:

myisamchk -r -q /var/lib/mysql/dataBase/table

где dataBase – имя базы данных, table – файл данных таблицы

Обратите внимание, что таблицы типа MyISAM содержатся в файлах, которые имеют расширение *.MYI и *.MYD. После ввода команды, в окне консоли будут показаны результаты работы и исправления поврежденных индексов проверяемой таблицы. Пример:

- check record delete-chain
- recovering (with sort) MyISAM-table 'dataBase/table'
Data records: 0
- Fixing index 1
- Fixing index 2
- Fixing index 4
Data records: 12422111

После окончания проверки, и исправления ошибок, можно пробовать стартовать сервер MySQL.

/etc/init.d/mysql start
Опубликован: 03.12.2014 г.

См. также:

Поиск больших файлов в Linux
Bash: mail: command not found
Установка и настройка mSMTP на Linux
Ставим nginx последней версии на Linux
SFTP-обмен файлами между серверами
Время последнего перезапуска системы Linux
Как подсчитать размер файлов и папок в Linux?
12 полезных опций использования команды «df» в Linux

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта