Spec-Zone.ru › MySQL 9.2

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

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

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

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

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

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

Примечание

Для помощи в устранении неполадок, InnoDB временно включает стандартный вывод монитора InnoDB при определенных условиях. Дополнительную информацию см. в разделе 17.20 «Устранение неполадок 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-9.2-en/innodb-enabling-monitors.html

Spec-Zone.ru

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