Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 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_status_output 系统变量设置为ON来启用标准InnoDB 监控器。

SET GLOBAL innodb_status_output=ON;

要禁用标准的 InnoDB 监控器,设置innodb_status_outputOFF

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

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监控器的替代方案,您可以使用SHOW ENGINE INNODB STATUS SQL 语句来获取标准InnoDB监控器输出,这个语句将 fetch 输出到您的客户端程序。如果您使用的是mysql交互式客户端,输出将更加可读,如果您将通常的分号语句终止符替换为\G:

mysql> SHOW ENGINE INNODB STATUS\G

SHOW ENGINE INNODB STATUS输出还包括InnoDB锁定监控器数据,如果启用了InnoDB锁定监控器

可以在启动时使用 --innodb-状态文件 选项来启用标准的 InnoDB 监控输出,并将其定向到状态文件中。当使用该选项时,InnoDB 会在数据目录中创建名为 innodb_状态.pid 的文件,每隔约 15 秒写入输出内容。

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

--innodb-状态文件 选项旨为临时使用,因为输出生成可以影响性能,并且 innodb_状态.pid 文件可能会随着时间的推移而变得非常大。