Spec-Zone.ru › MySQL 5.7

14.18.2 Включение мониторов InnoDB

При включении мониторов для периодического вывода, InnoDB записывает вывод в стандартный поток ошибок сервера mysqld (stderr) примерно каждые 15 секунд.

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

В Windows, stderr направляется в файл журнала по умолчанию, если не задано иное. Если вы хотите направить вывод на окно консоли, а не в лог ошибок, запустите сервер из командной строки в окне консоли с опцией --console. Для получения дополнительной информации см. Раздел 5.4.2.1, «Ведение журнала ошибок в Windows».

В Unix-подобных системах, stderr обычно направляется в терминал, если не задано иное. Для получения дополнительной информации см. Раздел 5.4.2.2, «Ведение журнала ошибок в Unix-подобных системах».

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

Примечание

Для помощи в устранении неполадок, InnoDB временно включает стандартный вывод монитора InnoDB при определенных условиях. Для получения дополнительной информации см. Раздел 14.22, «Устранение неполадок InnoDB».

Вывод монитора InnoDB начинается с заголовка, содержащего метку времени и имя монитора. Например:

=====================================
2014-10-16 18:37:29 0x7fc2a95c1700 INNODB MONITOR OUTPUT
=====================================

Заголовок для стандартного монитора InnoDB (INNODB MONITOR OUTPUT) также используется для монитора блокировок, так как последний генерирует такой же вывод с дополнительной информацией о блокировках.

Системные переменные innodb_status_output и innodb_status_output_locks используются для включения стандартного монитора InnoDB и монитора блокировок InnoDB.

Для включения или отключения мониторов InnoDB необходимо право PROCESS.

Включение стандартного монитора InnoDB

Включите стандартный монитор InnoDB, установив системную переменную innodb_status_output в значение ON.

SET GLOBAL innodb_status_output=ON;

Чтобы отключить стандартный монитор InnoDB, установите innodb_status_output в значение OFF.

При завершении работы сервера переменная innodb_status_output устанавливается в значение по умолчанию OFF.

Включение монитора блокировок InnoDB

Данные монитора блокировок InnoDB выводятся вместе с выводом стандартного монитора InnoDB. Для периодического вывода данных монитора блокировок InnoDB необходимо включить как стандартный монитор InnoDB, так и монитор блокировок InnoDB.

Чтобы включить монитор блокировок InnoDB, установите системную переменную innodb_status_output_locks в значение ON. Для периодического вывода данных монитора блокировок InnoDB необходимо включить как стандартный монитор InnoDB, так и монитор блокировок InnoDB:

SET GLOBAL innodb_status_output=ON;
SET GLOBAL innodb_status_output_locks=ON;

Чтобы отключить монитор блокировок InnoDB, установите innodb_status_output_locks в значение OFF. Установите innodb_status_output в значение OFF, чтобы также отключить стандартный монитор InnoDB.

При завершении работы сервера переменные innodb_status_output и innodb_status_output_locks устанавливаются в значение по умолчанию OFF.

Примечание

Для включения монитора блокировок InnoDB для вывода SHOW ENGINE INNODB STATUS необходимо только включить innodb_status_output_locks.

Получение вывода стандартного монитора InnoDB по требованию

В качестве альтернативы включению стандартного монитора InnoDB для периодического вывода, вы можете получить вывод стандартного монитора InnoDB по требованию, используя SQL-запрос SHOW ENGINE INNODB STATUS, который получает вывод в вашу клиентскую программу. Если вы используете интерактивный клиент mysql, вывод будет более понятен, если вы замените обычный разделитель оператора точкой с запятой на \G:

mysql> SHOW ENGINE INNODB STATUS\G

Вывод SHOW ENGINE INNODB STATUS также включает данные монитора блокировок InnoDB, если монитор блокировок InnoDB включён.

Направление вывода стандартного монитора InnoDB в файл состояния

Стандартный вывод монитора InnoDB может быть включён и направлен в файл состояния путём указания опции --innodb-status-file при запуске. При использовании этой опции InnoDB создаёт файл с именем innodb_status.pid в каталоге данных и записывает вывод в него примерно каждые 15 секунд.

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

Опция --innodb-status-file предназначена для временного использования, так как генерация вывода может влиять на производительность, а файл innodb_status.pid может со временем стать очень большим.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/innodb-enabling-monitors.html

Spec-Zone.ru

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