4.8.4 Использование mysqlcheck
для сопровождения и аварийного восстановления таблиц.
Начиная с версии MySQL 3.23.38 можно применять новый инструмент для
проверки и восстановления MyISAM
-таблиц. Отличие mysqlcheck
от myisamchk
состоит в том, что утилита mysqlcheck
должна использоваться при работающем
сервере mysqld
, в то время как myisamchk
- при остановленном. Преимущество
же заключается в том, что теперь не нужно останавливать сервер для
проверки или восстановления таблиц.
Утилита mysqlcheck
использует соответствующие команды MySQL-сервера CHECK
,
REPAIR
, ANALYZE
и OPTIMIZE
удобным для пользователя образом.
Существует три альтернативных способа запуска mysqlcheck
:
shell> mysqlcheck [OPTIONS] database [tables]
shell> mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]
shell> mysqlcheck [OPTIONS] --all-databases
Таким образом, утилита может использоваться подобно mysqldump
по отношению
к выбранным базам данных и таблицам.
В сравнении с другими клиентами утилита mysqlcheck
имеет следующую
отличительную особенность: установка поведения по умолчанию, (проверка
таблиц, -с
), может быть изменена путем переименования исполняемого файла
утилиты. Итак, чтобы получить инструмент, восстанавливающий таблицы по
умолчанию, просто скопируйте mysqlcheck
с новым именем, mysqlrepair
, или,
наоборот, сделайте символьную ссылку на mysqlrepair
и обозначьте ее как
mysqlrepair
. Если теперь запустить mysqlrepair
, то утилита по умолчанию
будет восстанавливать таблицы.
Для изменения поведения mysqlcheck
по умолчанию можно использовать
следующие обозначения:
mysqlrepair: Значение по умолчанию будет -r
mysqlanalyze: Значение по умолчанию будет -a
mysqloptimize: Значение по умолчанию будет -o
Ниже приведены возможные опции для mysqlcheck
. Какие из них поддерживает
ваша версия, можно проверить с помощью команды mysqlcheck --help
.
-A, --all-databases
-
Проверить все базы данных. Аналогична опции
--databases
, если указать все
базы данных.
-1, --all-in-1
-
Вместо выполнения запросов для каждой таблицы в отдельности выполнить все
запросы в одном отдельно для каждой таблицы. Имена таблиц будут
представлены в виде списка имен, разделенных запятой.
-a, --analyze
-
Анализировать данные таблицы.
--auto-repair
-
Если проверенная таблица повреждена, автоматически восстановить ее.
Исправления будут произведены после проверки всех таблиц, если были
обнаружены повреждения.
-#, --debug=...
-
Выводит информацию журнала отладки. Часто используется следующий набор
параметров: 'd:t:o,filename'
--character-sets-dir=...
-
Директория, где находятся установки символов.
-c, --check
-
Проверить таблицу на наличие ошибок.
-C, --check-only-changed
-
Проверить только таблицы, измененные со времени последней проверки или
некорректно закрытые.
--compress
-
Использовать сжатие данных в протоколе сервер/клиент.
-?, --help
-
Вывести данную вспомогательную информацию и выйти из программы.
-B, --databases
-
Проверить несколько баз данных. Обратите внимание на разницу в
использовании: в этом случае таблицы не указываются. Все имена аргументов
рассматриваются как имена баз данных.
--default-character-set=...
-
Установить набор символов по умолчанию.
-F, --fast
-
Проверить только базы данных, которые не были закрыты должным образом.
-f, --force
-
Продолжать даже при получении ошибки SQL.
-e, --extended
-
При использовании данного параметра совместно с
CHECK TABLE
можно быть на
100 процентов быть уверенным в целостности таблицы, хотя это и займет
много времени. Если же использовать этот параметр с REPAIR TABLE
,
запустится расширенное восстановление таблицы, которое может потребовать
не только длительного времени выполнения, но и привнесет также массу
ненужных строк!
-h, --host=...
-
Подключиться к хосту.
-m, --medium-check
-
Быстрее, чем
--extended-check
, но находит только 99,99 процентов всех
ошибок. Для большинства случаев этот вариант вполне подходит.
-o, --optimize
-
Оптимизировать таблицу.
-p, --password[=...]
-
Используемый пароль при подключении к серверу. Если пароль не указан, у
пользователя запрашивается пароль с терминала.
-P, --port=...
-
Номер порта, используемого для подключения.
-q, --quick
-
При использовании данной опции совместно с
CHECK TABLE
предотвращается
сканирование строк для корректировки неправильных связей. Это наиболее
быстрый метод проверки. Если же использовать этот параметр с REPAIR
TABLE
, программа попытается восстановить только систему индексов. Это
наиболее быстрый метод восстановления таблицы.
-r, --repair
-
Может исправить почти все, за исключением уникальных ключей, имеющих
дубликаты.
-s, --silent
-
Выводить только сообщения об ошибках.
-S, --socket=...
-
Файл сокета, используемый для подсоединения.
--tables
-
Перекрывает опцию
--databases
(-B
).
-u, --user=#
-
Имя пользователя MySQL, если этот пользователь в данное время не является
активным.
-v, --verbose
-
Вывести информацию о различных этапах.
-V, --version
-
Вывести информацию о версии и выйти из программы.
Add your own comment.