BACKUP TABLE
RESTORE TABLE
CHECK TABLE
REPAIR TABLE
myisamchk
для профилактики таблиц и послеаварийногоBuy this Reference Manual in softcover from Barnes & Noble!
REPAIR TABLE
REPAIR TABLE tbl_name[,tbl_name...] [QUICK] [EXTENDED] [USE_FRM]
REPAIR TABLE
работает только на таблицах типа MyISAM
и эквивалентна выполнению на таблице myisamchk -r table_name
.
При обыкновенной работе запускать эту команду не приходится, но если случится катастрофа, то с помощью REPAIR TABLE
практически наверняка удастся вернуть все данные из таблицы MyISAM
. Если таблицы сильно повреждены, то следует постараться выяснить, что послужило этому причиной! Обращайтесь к разделам section A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями и See section 7.1.3 Проблемы с таблицами MyISAM..
REPAIR TABLE
ремонтирует таблицу, которая, возможно, повреждена. Команда возвращает таблицу со следующими столбцами:
Столбец | Значение |
Table | Имя таблицы |
Op | Всегда ``repair'' |
Msg_type | Одно из значений status , error , info или warning . |
Msg_text | Само сообщение. |
Заметим, что по каждой ремонтируемой таблице может быть выдано много строк информации. Последняя строка будет представлять Msg_type status
и, как правило, должна содержать OK
. Если выдается что-либо отличное от OK
, то следует попробовать исправить таблицу с помощью myisamchk -o
, поскольку в REPAIR TABLE
пока реализованы не все опции myisamchk
. В скором будущем мы сделаем команду более гибкой.
Если указан QUICK
, то MySQL будет пытаться сделать REPAIR
только индексного дерева.
Если используется EXTENDED
, то MySQL будет создавать индекс строка за строкой вместо создания по одному индексу единоразово с помощью сортировки; такая техника может работать лучше сортировки для ключей фиксированной длины, если речь идет о хорошо сжимаемых ключах типа char()
большой длины.
Что касается MySQL 4.0.2, то тут для REPAIR
существует режим USE_FRM
. Используйте его, если отсутствует файл `.MYI' или поврежден его заголовок. В этом режиме MySQL воссоздаст таблицу, используя информацию из файла `.frm'. Этот вид исправления в myisamchk
недоступен.
Posted by on Friday May 17 2002, @6:24am | [Delete] [Edit] |
MySQL Berkley tables cannot be repaired using
REPAIR TABLE. However, after a BIG hardware
crash, I was able to recover data that I thought
had been lost by;
1) Shutting down all clients
2) Reloading the database (using mysqladmin
reload) then 3) Shutting down and restarting the
mySQL server.
I am truly amazed. :)) Well done guys!
Add your own comment.