Spec-Zone.ru › MariaDB

Использование скрипта healthcheck.sh

Скрипт healthcheck.sh является частью официальных образов Docker для MariaDB Server. Скрипт входит в состав репозитория официального образа Docker для MariaDB Server.

Скрипт обрабатывает ряд аргументов и тестов в строго определённом порядке. Аргументы, относящиеся к тесту, должны предшествовать имени теста. Если тест завершается неудачно, дальнейшая обработка не выполняется. Как аргументы, так и тесты начинаются с двойного дефиса.

По умолчанию (с 2023-06-27) официальные образы создадут пользователей healthcheck@localhost, healthcheck@127.0.0.1, healthcheck@::1 с случайным паролем и привилегиями USAGE. MARIADB_HEALTHCHECK_GRANTS может использоваться для --replication в случаях, когда требуются дополнительные разрешения. Это хранится в файле .my-healthcheck.cnf в каталоге данных контейнера и передаётся в качестве --defaults-extra-file скрипту healthcheck.sh, если он существует. .my-healthcheck.cnf также устанавливает protocol=tcp для mariadb, поэтому --connect фактически присутствует во всех тестах.

Переменные среды MARIADB_MYSQL_LOCALHOST_USER=1, MARIADB_MYSQL_LOCALHOST_GRANTS также могут быть использованы, но с созданием пользователя healthcheck они обеспечивают обратную совместимость.

Тесты

--connect

Активен, когда внешний пользователь может подключиться к TCP-порту MariaDB Server. Это строго проверяет только подключение по TCP, а не работоспособность аутентификации.

--innodb_initialized

Этот тест истиннен, когда InnoDB завершил инициализацию. Это включает любые отката или восстановления после сбоя, которые могут происходить в фоновом режиме во время запуска MariaDB.

Пользователь, производящий подключение, должен иметь привилегии USAGE для выполнения этого теста.

--innodb_buffer_pool_loaded

Это указывает на то, что дамп буфера пула, ранее сохранённый, был полностью загружен в буфер пула InnoDB, и, таким образом, сервер имеет готовый к использованию кэш. Это проверяет innodb_buffer_pool_load_status на наличие индикатора "complete".

Этот тест не проверяет, установлен ли innodb_buffer_pool_load_at_startup при запуске.

Пользователь, производящий подключение, должен иметь привилегии USAGE для выполнения этого теста.

--galera_online

Указывает, что узел Galera находится онлайн, по переменной wsrep_local_state. Это включает состояния, такие как "joining" и "donor", где он не может обслуживать запросы SQL.

Пользователь, производящий подключение, должен иметь привилегии USAGE для выполнения этого теста.

--replication

Этот тест проверяет репликацию на основе параметров --replication_*. Для успешного выполнения теста репликации необходимо успешно пройти все подтесты. Подтесты:

  • io - поток IO работает
  • sql - поток SQL работает
  • seconds_behind_master - реплика отстаёт менее чем на X секунд от мастера.
  • sql_remaining_delay - отставание реплики по задержке SQL выполнения менее чем на X секунд от выполнения SQL мастером.

Эти тесты выполняются для всех подключений, если --replication_all установлено (по умолчанию) или --replication_name.

Пользователь, производящий подключение, должен иметь привилегии REPLICATION_CLIENT, если используется версия ниже MariaDB 10.5, или REPLICA MONITOR для MariaDB 10.5 или более поздних версий.

--mariadbupgrade

Этот тест указывает, что MariaDB обновлён до текущей версии.

Параметры

--replication_all

Проверяет все источники репликации

--replication_name=n

Устанавливает имя канала многоканального соединения, которое подлежит проверке. Снимает установку --replication_all.

--replication_io

Поток IO работает

--replication_sql

Поток SQL работает

--replication_seconds_behind_master=n

Отставание не более указанного количества секунд.

--replication_sql_remaining_delay=n

Остаточное отставание не более указанного количества секунд.

--su=n

Переключение на данного пользователя. Может быть выполнено только один раз, так как по умолчанию для проверки используется root-пользователь.

--su-mysql

Переключение на пользователя mysql unix. Подобно --su, это перезапускает скрипт, сбросив все параметры. Должен быть первым аргументом. Переменная среды MARIADB_MYSQL_LOCALHOST_USER=1 разработана для использования именно здесь.

--datadir=n

Для теста --mariadbupgrade, где располагается файл обновления.

--no-defaults --defaults-file --defaults-extra-file --defaults-group-suffix

Передаются в mariadb shell для всех тестов, кроме --mariadbupgrade

Примеры

healtcheck.sh --su-mysql --connect --innodb_initialized

Переключение на пользователя mysql, и проверка возможности подключения и инициализации InnoDB.

healtcheck.sh --su-mysql --connect --replication_io --replication_sql --replication_seconds_behind_master=600  --replication_sql_remaining_delay=30 ----replication_name=archive --replication --replication_seconds_behind_master=10  --replication_name=channel1 --replication

Переключение на пользователя mysql, проверка возможности подключения, для канала репликации "archive", проверка работы потоков io и sql, отставание от мастера менее 600 секунд и остаточное отставание по SQL менее 30 секунд. Для канала "channel1" максимальное отставание от мастера ограничено 10 секундами.

Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в данном содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/using-healthcheck-sh-script/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API