ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

Все о MySQL. Проверка и восстановление таблиц


28-12-2009

В процессе работы с базами данных может понадобиться восстанавливать поврежденные таблицы (не исключено, что даже потребуется восстановление всей базы данных) из резервных копий с использованием журналов обновлений, если таблица была случайно повреждена или удалена. В случае относительно незначительного повреждения, MySQL имеет резервные варианты механизма восстановления. В следующем разделе читатель узнает, что можно предпринять в таком случае.
Проверка таблиц на ошибки
Первое, что следует предпринять при каких-либо подозрениях на ошибки в таблицах, - это проверить таблицу на этот предмет. Один из способов проверки - использование утилиты myisamchk. Она вызывается командой myisamchk с указанием имени файла таблицы (или файлов):
myisamchk файл-таблицы
Так как для работы утилиты myisamchk требуется полный доступ к таблицам, перед ее использованием сервер лучше всего остановить. Это позволяет не прибегать к координации доступа клиентов к этой таблице. Кроме того, при проверке наличия ошибок в таблице, утилите можно задавать несколько параметров (см. табл. 15.1).
Проверка и восстановление таблиц
Проверка и восстановление таблиц
Ниже приведен пример запуска утилиты myisamchk с параметром extended. Ни в коем случае не экспериментируйте с этой командой на больших таблицах. Это приведет к длительной блокировке сервера процедурой проверки. Если никаких ошибок найдено не было, то можно быть уверенным, что с данной таблицей все в порядке.
Листинг 15.8.
[root@host]# /usr/local/mysql/bin/myisamchk -e dbl/accounts
Checking MyISAM file: db1/ accounts
Data records: 14 Deleted blocks: 0
- check file-size
- check key delete-chain
- check record delete-chain
- check index reference
- check records and index references
Но утилита myisamchk имеет и недостатки, и они заключаются в том, что во время проверки базы данных ни один пользователь не имеет возможности работать с ней. Более того, ни один пользователь не может блокировать таблицы, проверяемые утилитой myisamchk. При проверке больших таблиц это может вылиться в серьезную проблему.
Для решения этой проблемы можно попробовать использовать большой буфер (см. myisamchk -help для более детальной информации). Другим решением является проверка с помощью команды CHECK TABLE.
Утилита myisamchk требует исключительного доступа к проверяемым таблицам, по­скольку она работает напрямую с файлами таблицы. С другой стороны, команда CHECK TABLE проверяет таблицы на наличие в них ошибок. А это означает, что потребуется гораздо меньше усилий, поскольку нет необходимости в остановке работы сервера и снятии всех блокировок таблиц.
Вот как выглядит синтаксис этой команды: CHECK TABLE имя-таблицы, ...
А ниже представлен пример работы этой команды.
Проверка и восстановление таблиц
Совет
Эта команда позволяет задавать тип проверки. Для этого к команде CHECK TABLE достаточно добавить ключевые слова FAST, MEDIUM, CHANGED или EXTENDED.
Так почему бы постоянно не пользоваться командой CHECK TABLE для проверки? Потому что при этом сервер проверяет все! А если сервер отключен, этой командой воспользоваться нельзя. С другой стороны утилита, myisamchk работает на файловом уровне, даже тогда, когда сервер отключен. CHECK TABLE - это команда SQL, и она может быть послана только клиентом, а сервер должен находиться в рабочем состоянии, для того чтобы принять и обработать ее. Но все же, если перед вами стал выбор между этими двумя типами проверки, пусть лучше MySQL сделает эту работу за вас.
На заметку
Кроме того, утилита myisamchk не работает с таблицами типа InnoDB и BDB, а команда CHECK TABLE - работает.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Двоичный журнал обновлений Все о MySQL. Восстановление таблиц