Справочное руководство по MySQL версии 4.1.1-alpha



Глава 4.4.6.9 Как ремонтировать таблицы - часть 2


Если используется версия MySQL 3.23.16 и выше, то для проверки и ремонта таблиц MyISAM можно (и нужно) использовать команды CHECK и REPAIR (section 4.4.4 Синтаксис CHECK TABLE и see section 4.4.5 Синтаксис REPAIR TABLE).

Раздел руководства, посвященный сопровождению таблиц, содержит опции к isamchk/myisamchk (see section 4.4.6 Использование myisamchk для профилактики таблиц и послеаварийного).

Случаи, когда упомянутые команды не дают результата или желательно использовать расширенные возможности, представленные в isamchk/myisamchk, рассматриваются в следующем разделе.

Если ремонт таблицы планируется выполнять из командной строки то сначала требуется остановить сервер. Следует отметить, что при выполнении mysqladmin shutdown с удаленного сервера mysqld все еще будет некоторое время работать после завершения mysqladmin, пока не будут остановлены все запросы и сброшены на диск все ключи.

Стадия 1: проверка таблиц

Выполните myisamchk *.MYI или, если вы располагаете временем, myisamchk -e *.MYI. Используйте опцию -s (молчаливый режим) для подавления ненужной информации.

Если mysqld остановлен, то следует использовать опцию --update-state для указания myisamchk отмечать таблицы как 'проверенные'(checked).

Ремонтировать следует только те таблицы, для которых myisamchk выдала ошибки. Для таких таблиц следует перейти к стадии 2.

Если во время проверки будут получены странные ошибки (подобные out of memory), или myisamchk завершится аварийно, то перейдите к стадии 3.

Стадия 2: легкий безопасный ремонт

Примечание: если есть желание ускорить ремонт, рекомендуется добавить: -O sort_buffer=# -O key_buffer=# (где # примерно 1/4 от имеющейся памяти) во всех командах isamchk/myisamchk.

Сначала надо попробовать запустить myisamchk -r -q tbl_name (-r -q означает "режим быстрого восстановления"). При этом будет сделана попытка исправить индексный файл без изменения файла данных. Если в файле данных содержится все необходимое, а удаленные связи указывают на правильные позиции в файле данных, то команда должна дать результат и таблица будет исправлена. Перейдите к ремонту следующей таблицы. В противном случае следует выполнить следующие действия:




Содержание  Назад  Вперед