Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Enabling InnoDB Monitors

17.17.2 启用InnoDB监控器

InnoDB 监控器启用周期性输出时,InnoDB 将输出写入 mysqld 服务器标准错误输出 (stderr),大约每15秒一次。

InnoDB 将监控输出发送到 stderr 而不是 stdout 或固定大小的内存缓冲区,以避免潜在的缓冲区溢出。

在Windows上,stderr 将被定向到默认日志文件,除非配置为其他方式。如果您想将输出定向到控制台窗口而不是错误日志,请从命令提示符在控制台窗口中使用 --console 选项启动服务器。有关更多信息,请参阅 Windows上的默认错误日志目标

在Unix和类Unix系统上,stderr 通常被定向到终端,除非配置为其他方式。有关更多信息,请参阅 Unix和类Unix系统上的默认错误日志目标

InnoDB 监控器仅应在您实际需要查看监控信息时启用,因为输出生成会导致一些性能下降。此外,如果监控输出被定向到错误日志,日志可能会变得非常大,如果您忘记禁用监控器。

Note

为了帮助故障排除,InnoDB 在某些条件下临时启用标准 InnoDB 监控输出。有关更多信息,请参阅 第 17.20 节,“InnoDB 故障排除”

InnoDB 监控输出以标题开始,包括时间戳和监控名称。例如:

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

标准 InnoDB 监控 (INNODB MONITOR OUTPUT) 的标题也用于锁监控器,因为后者生成相同的输出,附加了额外的锁信息。

系统变量 innodb_status_outputinnodb_status_output_locks 用于启用标准 InnoDB 监控和 InnoDB 锁监控。

需要 PROCESS 权限来启用或禁用 InnoDB 监控器。

启用标准InnoDB监控器

通过将 innodb_status_output 系统变量设置为 ON 来启用标准 InnoDB 监控器。

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_locksOFF。设置 innodb_status_outputOFF 也将禁用 InnoDB 标准监控器。

当您关闭服务器时,innodb_status_outputinnodb_status_output_locks 变量将被设置为默认值 OFF

Note

要启用 InnoDB 锁监控器以获取 SHOW ENGINE INNODB STATUS 输出,只需启用 innodb_status_output_locks

按需获取标准 InnoDB 监控输出

作为启用标准 InnoDB 监控器以获取周期性输出的替代方法,您可以使用 SHOW ENGINE INNODB STATUS SQL 语句来获取标准 InnoDB 监控输出,该语句将输出发送到客户端程序。如果您使用的是 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 文件可能会随着时间的推移变得非常大。