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