mariadb-check
Начиная с MariaDB 10.4.6, mariadb-check является символической ссылкой на mysqlcheck, инструмент для проверки, ремонта, анализа и оптимизации таблиц.
Начиная с MariaDB 10.5.2, mariadb-check — это имя инструмента, при этом mysqlcheck — символическая ссылка.
mariadb-check — это утилита обслуживания, которая позволяет проверять, восстанавливать, анализировать и оптимизировать несколько таблиц из командной строки.
По сути, это командная строка к командам CHECK TABLE, REPAIR TABLE, ANALYZE TABLE и OPTIMIZE TABLE, и, в отличие от myisamchk и aria_chk, требует, чтобы сервер был запущен.
Этот инструмент не работает с разделяемыми таблицами.
Использование mariadb-check
./client/mariadb-check [OPTIONS] database [tables]
ИЛИ
./client/mariadb-check [OPTIONS] --databases DB1 [DB2 DB3...]
ИЛИ
./client/mariadb-check [OPTIONS] --all-databases
mariadb-check можно использовать для проверки (-c, -m, -C), восстановления (-r), анализа (-a) или оптимизации (-o) таблиц. Некоторые из опций (например, -e или -q) можно использовать одновременно. Не все опции поддерживаются всеми движками хранения.
Опции -c, -r, -a и -o взаимоисключают друг друга.
Опция --check будет использоваться по умолчанию, если не указаны другие опции. Можно изменить поведение по умолчанию, создав символическую ссылку на исполняемый файл или скопировав его куда-нибудь под другим именем, варианты:
mysqlrepair |
По умолчанию будет -r (--repair) |
mysqlanalyze |
По умолчанию будет -a (--analyze) |
mysqloptimize |
По умолчанию будет -o (--optimize) |
Опции
mariadb-check поддерживает следующие опции:
| Опция | Описание |
|---|---|
-A, --all-databases
|
Проверить все базы данных. Это то же самое, что --databases со всеми выбранными базами данных. |
-1, --all-in-1
|
Вместо выдачи одного запроса для каждой таблицы использовать один запрос на базу данных, перечислив все таблицы в базе данных через запятую. |
-a, --analyze
|
Проанализировать указанные таблицы. |
--auto-repair |
Если проверенная таблица повреждена, автоматически исправить её. Восстановление будет выполнено после проверки всех таблиц. |
--character-sets-dir=name |
Директория, в которой установлены файлы наборов символов набора символов. |
-c, --check
|
Проверить таблицу на ошибки. |
-C, --check-only-changed
|
Проверить только таблицы, которые изменились с момента последней проверки или не были закрыты должным образом. |
-g, --check-upgrade
|
Проверить таблицы на изменения, зависящие от версии. Может быть использован с --auto-repair, чтобы исправить таблицы, требующие обновлений, зависящих от версии. Автоматически включает опции --fix-db-names и --fix-table-names. Используется при обновлении.
|
--compress |
Сжать всю информацию, передаваемую между клиентом и сервером, если обе стороны поддерживают сжатие. |
-B, --databases
|
Проверить несколько баз данных. Обратите внимание, что обычно mariadb-check обрабатывает первый аргумент как имя базы данных, а последующие аргументы как имена таблиц. С этой опцией имена таблиц не задаются, а все имена аргументов рассматриваются как имена баз данных. |
-# , --debug[=name]
|
Вывести журнал отладки. Часто это 'd:t:o,имя_файла'. |
--debug-check |
Проверить использование памяти и открытых файлов при выходе. |
--debug-info |
Вывести некоторые данные отладки при выходе. |
--default-auth=plugin |
Использовать плагин для аутентификации клиента по умолчанию. |
--default-character-set=name |
Установить набор символов по умолчанию набора символов. |
-e, --extended
|
Если вы используете эту опцию с --check, она гарантирует, что таблица будет на 100 процентов согласованной, но займет много времени. Если вы используете эту опцию с --repair, она принудительно использует старый, медленный метод восстановления с кэш-памятью ключей вместо гораздо более быстрого восстановления путем сортировки. |
-F, --fast
|
Проверить только таблицы, которые не были закрыты должным образом. |
--fix-db-names |
Преобразовать имена баз данных в формат, используемый с MySQL 5.1. Только имена баз данных, содержащие специальные символы, подвергаются влиянию. Используется при обновлении с более старой версии MySQL. |
--fix-table-names |
Преобразовать имена таблиц (включая представления) в формат, используемый с MySQL 5.1. Только имена таблиц, содержащие специальные символы, подвергаются влиянию. Используется при обновлении с более старой версии MySQL. |
--flush |
Очищать каждую таблицу после проверки. Это полезно, если вы не хотите, чтобы проверенные таблицы занимали место в кэше после проверки. |
-f, --force
|
Продолжать даже при возникновении ошибки SQL. |
-?, --help
|
Показать это сообщение справки и выйти. |
-h name, --host=name
|
Подключиться к указанному хосту. |
-m, --medium-check
|
Быстрее, чем extended-check, но находит только 99,99% всех ошибок. Должно быть достаточно для большинства случаев. |
-o, --optimize
|
Оптимизировать таблицы. |
-p, --password[=name]
|
Пароль для подключения к серверу. Если вы используете короткий вариант опции (-p), не должно быть пробела между опцией и паролем. Если вы опустите значение пароля после опции --password или -p в командной строке, mariadb-check запросит его. Указание пароля в командной строке следует считать небезопасным. Вы можете использовать файл опций, чтобы избежать ввода пароля в командной строке. |
-Z, --persistent
|
При использовании ANALYZE TABLE (--analyze) используется опция PERSISTENT FOR ALL, которая принудительно обновляет Статистику независимо от движка для этой таблицы. Добавлено в MariaDB 10.1.10
|
-W, --pipe
|
В Windows подключиться к серверу через именованную трубу. Эта опция применяется только если сервер поддерживает подключения через именованные трубы. |
--plugin-dir |
Директория для плагинов клиента. |
-P num, --port=num
|
Номер порта для подключения или 0 для использования по умолчанию, в порядке приоритета: my.cnf, $MYSQL_TCP_PORT, /etc/services, встроенный по умолчанию (3306). |
--process-tables |
Выполнить запрашиваемую операцию (проверка, восстановление, анализ, оптимизация) над таблицами. Включено по умолчанию. Используйте --skip-process-tables для отключения. |
--process-views[=val] |
Выполнить запрашиваемую операцию (только CHECK VIEW или REPAIR VIEW). Возможные значения: NO, YES (исправить контрольную сумму, при необходимости, добавить поле mariadb-version), UPGRADE_FROM_MYSQL (то же, что YES, и переключить алгоритм MERGE<->TEMPTABLE). |
--protocol=name |
Протокол подключения (tcp, socket, pipe, memory) для подключения к серверу. Полезно, когда другие параметры подключения заставляют использовать другой протокол, чем нужный. |
-q, --quick
|
Если вы используете эту опцию с CHECK TABLE, она предотвращает проверку сканированием строк для проверки неправильных связей. Это самая быстрая проверка. Если вы используете эту опцию с REPAIR TABLE, она попытается восстановить только дерево индекса. Это самый быстрый метод восстановления таблицы. |
-r, --repair
|
Может исправить практически все, кроме уникальных ключей, которые не уникальны. |
--shared-memory-base-name |
Имя общей памяти для использования Windows-соединений, использующих общую память с локальным сервером (запущенным с опцией --shared-memory). Регистрозависимая. |
-s, --silent
|
Выводить только сообщения об ошибках. |
--skip-database |
Не обрабатывать базу данных (регистрозависимо), указанную в качестве аргумента. |
-S name, --socket=name
|
Для подключений к localhost, файл Unix-соккета для использования, или, в Windows, имя именованной трубы для использования. |
--ssl |
Включает TLS. TLS также включается даже без установки этой опции, когда установлены определенные другие TLS-опции. Начиная с MariaDB 10.2, опция --ssl по умолчанию не будет включать проверку сертификата сервера. Для проверки сертификата сервера пользователю необходимо указать опцию --ssl-verify-server-cert. |
--ssl-ca=name |
Определяет путь к файлу PEM, который должен содержать один или несколько сертификатов X509 для доверенных центров сертификации (ЦС), используемых для TLS. Эта опция требует указания абсолютного пути, а не относительного. Смотрите Обзор безопасных подключений: Центры сертификации (ЦС) для получения дополнительной информации. Эта опция подразумевает опцию --ssl |
--ssl-capath=name |
Определяет путь к каталогу, который содержит один или несколько файлов PEM, каждый из которых должен содержать один сертификат X509 для доверенного центра сертификации (ЦС), используемого для TLS. Эта опция требует указания абсолютного пути, а не относительного. Каталог, указанный в этой опции, должен быть обработан командой openssl rehash. Смотрите Обзор безопасных подключений: Центры сертификации (ЦС) для получения дополнительной информации. Эта опция поддерживается только если клиент был скомпилирован с OpenSSL или yaSSL. Если клиент был скомпилирован с GnuTLS или Schannel, то эта опция не поддерживается. Смотрите TLS и криптографические библиотеки, используемые MariaDB, чтобы узнать, какие библиотеки используются на каких платформах. Эта опция подразумевает опцию --ssl |
--ssl-cert=name |
Определяет путь к файлу сертификата X509, который необходимо использовать для TLS. Эта опция требует указания абсолютного пути, а не относительного. Эта опция подразумевает опцию --ssl |
--ssl-cipher=name |
Список разрешенных шифров или наборов шифров для использования в TLS. Эта опция подразумевает опцию --ssl |
--ssl-crl=name |
Определяет путь к файлу PEM, который должен содержать один или несколько отозванных сертификатов X509 для использования в TLS. Эта опция требует указания абсолютного пути, а не относительного. Смотрите Обзор безопасных подключений: Списки отозвания сертификатов (CRL) для получения дополнительной информации. Эта опция поддерживается только если клиент был скомпилирован с OpenSSL или Schannel. Если клиент был скомпилирован с yaSSL или GnuTLS, то эта опция не поддерживается. Смотрите TLS и криптографические библиотеки, используемые MariaDB, чтобы узнать, какие библиотеки используются на каких платформах. |
--ssl-crlpath=name |
Определяет путь к каталогу, содержащему один или несколько файлов PEM, каждый из которых должен содержать один аннулированный сертификат X509, используемый для TLS. Этот параметр требует использования абсолютного пути, а не относительного. Каталог, указанный этим параметром, должен быть обработан командой openssl rehash. Дополнительную информацию см. в разделе Обзор безопасных соединений: списки аннулированных сертификатов (CRL). Этот параметр поддерживается только, если клиент был скомпилирован с OpenSSL. Если клиент был скомпилирован с yaSSL, GnuTLS или Schannel, то этот параметр не поддерживается. Дополнительную информацию о используемых библиотеках на разных платформах см. в разделе Библиотеки TLS и криптографии, используемые MariaDB. |
--ssl-key=name |
Определяет путь к файлу с закрытым ключом, используемому для TLS. Этот параметр требует использования абсолютного пути, а не относительного. Этот параметр подразумевает параметр --ssl. |
--ssl-verify-server-cert |
Включает проверку серверного сертификата. По умолчанию этот параметр отключен. |
--tables |
Переопределяет параметр --databases или -B, так что все аргументы имени, следующие за параметром, рассматриваются как имена таблиц. |
--use-frm |
Для операций ремонта таблиц MyISAM получить структуру таблицы из файла .frm, чтобы таблицу можно было отремонтировать, даже если заголовок .MYI поврежден. |
-u, --user=name
|
Пользователь для входа, если это не текущий пользователь. |
-v, --verbose
|
Вывести информацию о различных этапах. Вы можете указать этот параметр несколько раз, чтобы получить еще больше информации. См. mariadb-check и verbose ниже. |
-V, --version
|
Вывести информацию о версии и завершить работу. |
--write-binlog |
Записать команды ANALYZE, OPTIMIZE и REPAIR TABLE в бинарный журнал. Включено по умолчанию; используйте --skip-write-binlog, когда команды не должны отправляться репликациям-клиентам. |
Файлы параметров
В дополнение к чтению параметров из командной строки, mariadb-check также может читать параметры из файлов параметров. Если в файле параметров указан неизвестный параметр для mariadb-check, то он игнорируется.
Следующие параметры относятся к тому, как инструменты командной строки MariaDB обрабатывают файлы параметров. Они должны быть указаны в качестве первого аргумента в командной строке:
| Параметр | Описание |
|---|---|
--print-defaults |
Вывести список аргументов программы и завершить работу. |
--no-defaults |
Не читать параметры по умолчанию из любого файла параметров. |
--defaults-file=# |
Читать параметры по умолчанию только из заданного файла #. |
--defaults-extra-file=# |
Прочитать этот файл после чтения глобальных файлов. |
--defaults-group-suffix=# |
В дополнение к группам параметров по умолчанию, также читать группы параметров с этим суффиксом. |
mariadb-check связан с MariaDB Connector/C. Однако MariaDB Connector/C пока не обрабатывает разбор файлов параметров для этого клиента. Это по-прежнему выполняется кодом парсинга файла параметров сервера. Дополнительную информацию см. на MDEV-19035.
Группы параметров
mariadb-check считывает параметры из следующих групп параметров из файлов параметров:
| Группа | Описание |
|---|---|
[mysqlcheck] |
Параметры, считываемые mysqlcheck, что включает как MariaDB Server, так и MySQL Server. |
[mariadb-check] |
Параметры, считываемые mariadb-check. Доступно начиная с MariaDB 10.4.6. |
[client] |
Параметры, считываемые всеми программами MariaDB и MySQL клиентскими программами, что включает как MariaDB, так и MySQL клиенты. Например, mysqldump. |
[client-server] |
Параметры, считываемые всеми программами MariaDB клиентскими программами и MariaDB Server. Это полезно для параметров, таких как сокет и порт, которые общие для сервера и клиентов. |
[client-mariadb] |
Параметры, считываемые всеми программами MariaDB клиентскими программами. |
Примечания
Значения по умолчанию
Чтобы увидеть значения параметров по умолчанию, а также аргументы, полученные из конфигурационных файлов, можно сделать следующее:
./client/mariadb-check --print-defaults ./client/mariadb-check --help
mariadb-check и автоматический ремонт
При запуске mariadb-check с --auto-repair (как это делает mariadb-upgrade), mariadb-check сначала проверит все таблицы, а затем на отдельном этапе отремонтирует те, которые не прошли проверку.
mariadb-check и все базы данных
mariadb-check --all-databases будет игнорировать внутренние таблицы журнала general_log и slow_log, поскольку их нельзя проверить, отремонтировать или оптимизировать.
mariadb-check и подробный вывод
Использование одного параметра --verbose даст вам больше информации о том, что делает mariadb-check.
Использование двух параметров --verbose также предоставит вам информацию о соединениях.
Если вы используете три параметра --verbose , то также на стандартном выводе получите все команды ALTER, RENAME и CHECK, выполняемые mariadb-check.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mariadb-check/