Использование 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
-
Вывести информацию о версии и выйти из программы.
Содержание раздела