Spec-Zone.ru › MySQL 8.4

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

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

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

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

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

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

Примечание

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

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

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

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

Системные переменные innodb_status_output и innodb_status_output_locks используются для включения стандартного монитора 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-8.4-en/innodb-enabling-monitors.html

Spec-Zone.ru

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