17.17.2 InnoDB 监视器启用
当InnoDB
监视器为周期性输出启用时,InnoDB
将输出写入到mysqld服务器标准错误输出(stderr
)约每15秒。
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_output
和innodb_status_output_locks
系统变量用于启用标准InnoDB
监控和InnoDB
锁定监控。
需要PROCESS
特权来启用或禁用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_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
监控器的替代方案,您可以使用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_状态.
的文件,每隔约 15 秒写入输出内容。pid
InnoDB
在正常关闭服务器时会删除状态文件。如果发生非正常关闭,可能需要手动删除状态文件。
--innodb-状态文件
选项旨为临时使用,因为输出生成可以影响性能,并且 innodb_状态.
文件可能会随着时间的推移而变得非常大。pid