В процессе работы с базами данных может понадобиться восстанавливать поврежденные таблицы (не исключено, что даже потребуется восстановление всей базы данных) из резервных копий с использованием журналов обновлений, если таблица была случайно повреждена или удалена. В случае относительно незначительного повреждения, 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 - работает.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Проверка и восстановление таблиц
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Двоичный журнал обновлений | Все о MySQL. Восстановление таблиц |