Spec-Zone .ru
спецификации, руководства, описания, API

4.6.3. myisamchk — Утилита Табличного обслуживания MyISAM

4.6.3.1. Общие параметры myisamchk
4.6.3.2. Опции Проверки myisamchk
4.6.3.3. Опции Восстановления myisamchk
4.6.3.4. Другие myisamchk Опции
4.6.3.5. Получение информации о Таблице с myisamchk
4.6.3.6. Использование Памяти myisamchk

myisamchk утилита получает информацию о Ваших таблицах базы данных или проверках, восстановлениях, или оптимизирует их. myisamchk работает с MyISAM таблицы (таблицы, которые имеют .MYD и .MYI файлы для того, чтобы хранить данные и индексируют).

Можно также использовать CHECK TABLE и REPAIR TABLE операторы, чтобы проверить и восстановить MyISAM таблицы. См. Раздел 13.7.2.2,"CHECK TABLE Синтаксис", и Раздел 13.7.2.5,"REPAIR TABLE Синтаксис".

Использование myisamchk с разделенными таблицами не поддерживается.

Предостережение

Лучше делать резервное копирование таблицы прежде, чем выполнить табличную работу восстановления; при некоторых обстоятельствах работа могла бы вызвать потерю данных. Возможные причины включают, но не ограничиваются ошибками файловой системы.

Вызовите myisamchk как это:

shell> myisamchk [options]
        tbl_name ...

options определите то, что Вы хотите, чтобы myisamchk сделал. Они описываются в следующих разделах. Можно также получить список опций, вызывая myisamchk - справка.

Без опций, myisamchk просто проверяет Вашу таблицу как работу значения по умолчанию. Чтобы получить больше информации или сказать myisamchk принимать меры по ликвидации последствий, определите опции как описано в следующем обсуждении.

tbl_name таблица базы данных, которую Вы хотите проверить или восстановить. Если Вы выполняете myisamchk куда-нибудь кроме в каталоге базы данных, следует определить путь к каталогу базы данных, потому что myisamchk понятия не имеет, где база данных располагается. Фактически, myisamchk фактически не заботится, располагаются ли файлы, Вы продолжаете работать, в каталоге базы данных. Можно скопировать файлы, которые соответствуют таблице базы данных в некоторое другое расположение и выполняют операции восстановления на них там.

Можно назвать несколько таблиц на myisamchk командной строке, если Вы желаете. Можно также определить таблицу, называя ее индексный файл (файл с .MYI суффикс). Это позволяет Вам определить все таблицы в каталоге при использовании образца *.MYI. Например, если Вы находитесь в каталоге базы данных, можно проверить весь MyISAM таблицы в том каталоге как это:

shell> myisamchk *.MYI

Если Вы не находитесь в каталоге базы данных, можно проверить все таблицы там, определяя путь к каталогу:

shell> myisamchk /path/to/database_dir/*.MYI

Можно даже проверить все таблицы во все базы данных, определяя подстановочный знак с путем к каталогу данных MySQL:

shell> myisamchk /path/to/datadir/*/*.MYI

Рекомендуемый способ быстро проверить все MyISAM таблицы:

shell> myisamchk --silent --fast /path/to/datadir/*/*.MYI

Если Вы хотите проверить все MyISAM таблицы и восстановление любой, которые повреждаются, можно использовать следующую команду:

shell> myisamchk --silent --force --fast
        --update-state \          --key_buffer_size=64M
        --myisam_sort_buffer_size=64M \          --read_buffer_size=1M
        --write_buffer_size=1M \          /path/to/datadir/*/*.MYI

Эта команда предполагает, что у Вас есть свободные больше чем 64 МБ. Для получения дополнительной информации о выделении памяти с myisamchk, см. Раздел 4.6.3.6, "myisamchk Использование Памяти".

Для дополнительной информации об использовании myisamchk, см. Раздел 7.6,"MyISAM Табличное Обслуживание и Восстановление Катастрофического отказа" .

Важный

Следует гарантировать, что никакая другая программа не использует таблицы, в то время как Вы выполняете myisamchk. Самое эффективное средство выполнения так состоит в том, чтобы завершить работу сервера MySQL, работая myisamchk, или заблокировать все таблицы, на которых используется myisamchk.

Иначе, когда Вы выполняете myisamchk, он может вывести на экран следующее сообщение об ошибке:

warning: clients are using or haven't closed the table properly

Это означает, что Вы пытаетесь проверить таблицу, которая была обновлена другой программой (такой как mysqld сервер), который еще не закрыл файл, или это умерло, не закрывая файл должным образом, который может иногда приводить к повреждению один или больше MyISAM таблицы.

Если mysqld работает, следует вынудить его сбросить любые табличные модификации, которые все еще буферизуются в памяти при использовании FLUSH TABLES. Следует тогда гарантировать, что никто не использует таблицы, в то время как Вы выполняете myisamchk

Однако, самый легкий способ избежать этой проблемы состоит в том, чтобы использовать CHECK TABLE вместо myisamchk, чтобы проверить таблицы. См. Раздел 13.7.2.2,"CHECK TABLE Синтаксис".

myisamchk поддерживает следующие опции, которые могут быть определены на командной строке или в [myisamchk] группа файла опции. myisamchk также поддерживает опции для того, чтобы обработать файлы опции, описанные в Разделе 4.2.3.4, "Параметры командной строки, которые Влияют на Обработку Файла опции".

Таблица 4.11. myisamchk Опции

Формат Файл опции Описание
- проанализировать проанализировать Проанализируйте распределение значений ключа
- резервное копирование резервное копирование Сделайте резервное копирование.MYD файла как file_name-разовое. БАК
- block-search=offset поиск блока Найдите запись, которой принадлежит блок при данном смещении
- проверить проверить Проверьте таблицу на ошибки
- "проверка, только измененная" "проверка, только измененная" Проверка только таблицы, которые изменились начиная с последней проверки
- корректная контрольная сумма корректная контрольная сумма Исправьте информацию о контрольной сумме для таблицы
- data-file-length=len длина файла данных Максимальная длина файла данных (воссоздавая файл данных, когда это полно),
- отладка [=debug_options] отладка Запишите журнал отладки
decode_bits=# decode_bits Decode_bits
- описание описание Напечатайте некоторую дескриптивную информацию о таблице
- расширяться-проверка расширяться-проверка Сделайте очень полную табличную проверку или восстановление, которое пытается восстановить каждую возможную строку с файла данных
- быстро быстро Проверка только таблицы, которые не были закрыты должным образом
- сила сила Сделайте работу восстановления автоматически, если myisamchk находит какие-либо ошибки в таблице
- сила сила - восстанавливается Перезапишите старые временные файлы. Для использования с-r или-o опцией
ft_max_word_len=# ft_max_word_len Максимальная длина слова для Полнотекстовых индексов
ft_min_word_len=# ft_min_word_len Минимальная длина слова для Полнотекстовых индексов
ft_stopword_file=value ft_stopword_file Используйте stopwords от этого файла вместо встроенного списка
- СПРАВКА Сообщение справки дисплея и выход
- справка Сообщение справки дисплея и выход
- информация информация Напечатайте информационную статистику о таблице, которая проверяется
key_buffer_size=# key_buffer_size Размер буфера, используемого для, индексирует блоки для таблиц MyISAM
- keys-used=val используемый ключами Битовое значение, которое указывает, который индексирует, чтобы обновить
- max-record-length=len "максимальная длина записи" Пропустите строки, более крупные чем данная длина, если myisamchk не может выделить память, чтобы содержать их
- средняя проверка средняя проверка Сделайте проверку, которая быстрее чем - работа расширяться-проверки
myisam_block_size=# myisam_block_size Размер блока, который будет использоваться для индексных страниц MyISAM
myisam_sort_buffer_size=# myisam_sort_buffer_size Буфер, который выделяется, сортируя индексирование, делая ВОССТАНОВЛЕНИЕ или когда создание индексирует с CREATE INDEX или ALTER TABLE
- параллель - восстанавливается параллель - восстанавливается Использует тот же самый метод в качестве-r и-n, но создает все ключи параллельно, используя различные потоки (бета)
- быстрый быстрый Достигните более быстрого восстановления, не изменяя файл данных.
read_buffer_size=# read_buffer_size Каждый поток, который делает последовательное сканирование, выделяет буфер этого размера для каждой таблицы, которую это сканирует
- только для чтения только для чтения Не отмечайте таблицу как проверено
- восстановиться восстановиться Сделайте восстановление, которое может решить почти любую проблему кроме уникальных ключей, которые не уникальны
- безопасный - восстанавливаются безопасный - восстанавливаются Сделайте восстановление, используя старый метод восстановления, который прочитывает все строки в порядке и обновляет, все индексируют деревья, основанные на найденных строках
- автоматический инкремент набора [=value] автоматический инкремент набора Вынудите нумерацию AUTO_INCREMENT для новых записей запуститься в данном значении
- set-collation=name сопоставление набора Определите, что сопоставление, чтобы использовать для того, чтобы сортировать таблицу индексирует
- тихий тихий Тихий режим
sort_buffer_size=# sort_buffer_size Буфер, который выделяется, сортируя индексирование, делая ВОССТАНОВЛЕНИЕ или когда создание индексирует с CREATE INDEX или ALTER TABLE
- вид - индексирует вид - индексирует Сортируйте индексировать древовидные блоки в высоком младшем разряде
sort_key_blocks=# sort_key_blocks sort_key_blocks
--sort-records=# записи вида Записи вида согласно детали индексируют
- вид - восстанавливается вид - восстанавливается Вынудите myisamchk использовать сортировку, чтобы разрешить ключи, даже если временные файлы были бы очень большими
stats_method=value stats_method Определяет, как MyISAM индексируют код набора статистики, должен обработать, ОБНУЛЯЕТ
- tmpdir=path tmpdir Путь каталога, который будет использоваться для того, чтобы хранить временные файлы
- распаковать распаковать Распакуйте таблицу, которая была упакована myisampack
- состояние обновления состояние обновления Храните информацию в.MYI файле, чтобы указать, когда таблица была проверена и ли разрушенная таблица
- многословный Многословный режим
- версия Выведите на экран информацию о версии и выход
write_buffer_size=# write_buffer_size Размер буфера записи