Spec-Zone .ru
спецификации, руководства, описания, API
|
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 | Размер буфера записи |