文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  启用 InnoDB 监控器

17.17.2 启用 InnoDB 监控器

当为定期输出启用 InnoDB 监控器时,InnoDB 大约每 15 秒将输出写入到 mysqld 服务器标准错误输出 (stderr)。

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

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

在 Unix 和类 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_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_locks 设置为 OFF。要同时禁用 InnoDB 标准监控器,请将 innodb_status_output 设置为 OFF

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

注意

要为 SHOW ENGINE INNODB STATUS 输出启用 InnoDB 锁监控器,您只需要启用 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-status-file 选项来启用标准 InnoDB 监控器输出并将其定向到状态文件。使用此选项时,InnoDB 会在数据目录中创建一个名为 innodb_status.pid 的文件,并将输出写入该文件,大约每 15 秒写入一次。

InnoDB 在服务器正常关闭时会删除状态文件。如果发生异常关闭,则可能需要手动删除状态文件。

--innodb-status-file 选项适用于临时使用,因为输出生成会影响性能,并且 innodb_status.pid 文件会随着时间的推移变得相当大。