4.4. Предотвращение катастроф и восстановление
4.4.6. Использование myisamchk для профилактики таблиц и послеаварийного восстановления
4.4.6.4. Опции исправления для myisamchk
Следующие опции используются, если myisamchk запускается с -r или -o:
-D # или --data-file-length=# Максимальная длина файла данных (когда файл данных пересоздается при его "переполнении").
-e или --extend-check Пробовать исправлять каждую возможную строку из файла данных. Обычно при этом обнаруживается масса замусоренных строк. Использовать эту опцию следует только в самом крайнем случае, когда больше ничего не остается.
-f или --force Писать поверх старых временных файлов (table_name.TMD) вместо аварийного прекращения.
-k # или keys-used=# Если используется ISAM, то данный параметр предписывает обработчику таблиц ISAM на необходимость обновить только первые # индексов. Если используется MyISAM, то определяет, какие ключи использовать, при этом каждый двоичный бит соответствует одному ключу (первый ключ - это бит 0). Может использоваться для ускорения вставок! Отключенные индексы можно снова активизировать с помощью myisamchk -r. keys.
-l или --no-symlinks Не рассматривать символические ссылки. Обычно myisamchk исправляет таблицы, на которые указывают символические ссылки. Данная опция отсутствует в MySQL 4.0, в связи с тем, что MySQL 4.0 не удаляет символические ссылки во время восстановления.
-r или --recover При указании этой опции можно исправить практически все, кроме уникальных ключей, в которых есть повторения (ошибка, вероятность которой мизерна для таблиц ISAM/MyISAM). Если необходимо восстановить таблицу, то начинать надо с этой опции. Только если myisamchk сообщит, что таблица не может быть восстановлена с помощью -r, тогда следует пытаться применять -o (отметим, что в тех маловероятных случаях, когда -r не срабатывает, файл данных остается неизменным), В случае большого объема памяти следует увеличить размер sort_buffer_size!
-o или --safe-recover
Используется старый метод восстановления (читаются подряд все строки и обновляются все деревья индексов на основе найденных строк); такой алгоритм работает на порядок медленнее -r, но метод справляется с несколькими редкими случаями, непосильными для -r. При этом методе восстановления также используется значительно меньше дискового пространства, нежели в случае -r. Обычно всегда следует начинать с исправления посредством -r, и только если результат не будет достигнут, использовать -o. Для систем с большим объемом памяти следует увеличить размер key_buffer_size!
-n или --sort-recover
Заставляет myisamchk использовать сортировку при разрешении ключей, даже если это потребует временных файлов очень большого размера.
--character-sets-dir=...
Каталог, где хранятся кодировки.
--set-character-set=name
Изменить используемую для индекса кодировку
-t или --tmpdir=path
Путь для хранения временных файлов. Если не задан, myisamchk использует для пути переменную окружения TMPDIR. Начиная с MySQL 4.1, в TMPDIR могут быть указаны несколько путей, разделенных двоеточием : (точкой с запятой на Windows ;). Эти пути будут использованы в ротации. Это используется для того, чтобы распределить данные между разными физическими дисками.
-q или --quick
Быстрый ремонт без изменения файла данных. Можно добавить вторую -q, чтобы дать myisamchk санкцию на изменение исходного файла данных в случае дублирования ключей