САЙТОСТРОЙ.РУ

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

Построй свой сайт!

Если что-то с базой данных...


Время от времени базы данных дают сбой. Часто это событие застает администратора сервера врасплох в виду неочевидных симптомов неисправности. При этом может оказаться крайне опасным использовать те или иные способы исправления. В этой статье рассмотрены способы восстановления работоспособности баз данных.

Симптомами могут служить:
  • нулевая выдача данных. Без сообщений об ошибках возвращается 0 рядов;
  • расхождение информации о данных в различных структурах. Так, может оказаться, что число рядов возвращается верным, однако при выборке не возвращается никаких данных;
  • операция CHECK TABLE `table` выдает сообщение об ошибке;
  • при выборке данных получаем ошибку: "Got error 127 from table handler".

Ошибки в работе базы данных часто связаны с проблемами физического носителя, реже - это программные ошибки. При внезапном отключении питания оказываются частично записанными данные или не сброшены буферы данных, что приводит к искажению структур базы. Возникают ошибки и при переполнении диска, на котором хранится база, а также при достижении лимита пространства на носителе. Так или иначе, список действия по исправлению ошибок будет примерно одинаков.

1. Полный дамп базы, ее уничтожение и последующая загрузка.

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

mysqldump -u root -ppassword --skip-lock-tables database | mail -s"Database dump on `date`" admin@admin.ru

Далее необходимо либо уничтожить всю базу данных:

DROP DATABASE `database`

либо все таблицы в ней:

DROP TABLE `table1`;
DROP TABLE `table2`;
...

Импортировать базу можно при помощи клиентской программы MySQL - mysql. Для этого нужно закачать дамп на сервер и зайти в эту программу. Импорт осуществляется командой:

. /root/dump.sql

2. Ремонт командами MySQL.

Несмотря на очевидность использования команды CHECK TABLE `table`, не рекомендуется ее использовать, потому что это грозит разрушением таблицы, если есть несостыковка структур данных. Зная, что таблицы неисправна (признаки приведены выше), можно воспользоваться командой непосредственно восстановления:

REPAIR TABLE `table`

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

В ответ база данных вернет список операций над таблицей, и в последнем поле Msg_text должно содержаться "OK", иначе таблицу нельзя считать исправленной. В этом случае надо проверить физический носитель и, если он в порядке, попробовать первый вариант исправления.

3. Ремонт при помощи утилит.

Файлы базы данных обычно располагаются в папке /var/lib/mysql/, хотя этот путь может быть любым (определяется в файле конфигурации /etc/my.cnf или в скрипте запуска в папке /etc/init.d/). Каждой таблице соответствует 3 файла:

Файла таблицы MySQL

Чтобы восстановить индексы таблицы по файлам ее данных, нужно ввести команду:

myisamchk -r <file.MYI>


САЙТОСТРОЙ.РУ - практикум создания сайтов для каждого

Просим с уважением относиться к авторам сайта и при копировании документов указывать ссылки на наш сайт.