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


30.4.4.2 The diagnostics() Procedure

生成当前服务器状态报告,以供诊断用途。

该过程在执行时禁用二进制日志记录,通过 manipulation 会话的 sql_log_bin 系统变量的值。这是一个受限的操作,因此该过程需要具有设置受限会话变量的权限。请参阅第7.1.9.1节,“系统变量权限”

diagnostics()收集的数据包括:

一些sys架构视图是根据初始、总和delta值计算的:

  • 初始视图是诊断过程开始时视图的内容。这输出与delta视图的开始值相同。初始视图包括在诊断过程中,如果diagnostics.include_raw配置选项设置为ON

  • 总视图是诊断过程结束时视图的内容。这输出与delta视图的结束值相同。总视图总是包括的。

  • delta视图是从诊断过程开始到结束的差异。最小和最大值是delta视图的最小和最大值,分别。它们不一定反映监控期间的最小和最大值。除了metrics视图,delta计算只在首次和最后输出之间进行。

  • in_max_runtime INT UNSIGNED: 数据收集的最大时间(秒)。使用NULL以收集默认的60秒数据。否则,使用大于0的值。

  • in_interval INT UNSIGNED: 数据收集之间的睡眠时间(秒)。使用NULL以睡眠默认的30秒。否则,使用大于0的值。

  • in_auto_config ENUM('current', 'medium', 'full'): 性能架构的配置。允许的值是:

    • current: 使用当前的instrument和consumer设置。

    • medium: 启用一些仪器和消费者。

    • full: 启用所有仪器和消费者。

    Note

    启用了越多的仪器和消费者,对MySQL服务器性能的影响就越大。请小心使用medium设置,特别是full设置,它对性能的影响很大。

    使用mediumfull设置需要拥有SUPER特权。

    如果选择的设置不是current,那么当前设置将在过程结束时恢复。

diagnostics()操作可以使用以下配置选项或相应的用户定义变量(见第30.4.2.1节,“The sys_config Table”):

  • debug, @sys.debug

    如果该选项设置为ON,则生成调试输出。默认情况下是OFF

  • diagnostics.allow_i_s_tables, @sys.diagnostics.allow_i_s_tables

    如果该选项设置为ON,则diagnostics()过程允许对信息架构TABLES表进行表扫描。如果有很多表,这可能会很耗时。默认情况下是OFF

  • diagnostics.include_raw, @sys.diagnostics.include_raw

    如果该选项设置为ON,则diagnostics()过程输出包括来自查询metrics视图的原始输出。默认情况下是OFF

  • statement_truncate_len, @sys.statement_truncate_len

    format_statement()函数返回的语句的最大长度。如果语句长度超过该值,则将其截断到该值。默认值为64。

创建一个诊断报告,该报告每30秒启动一次,运行最多120秒,使用当前性能架构设置:

mysql> CALL sys.diagnostics(120, 30, 'current');

使用 diagnostics() 程序在运行时将输出捕获到文件中,可以使用 mysql 客户端的 tee filenamenotee 命令(见 第6.5.1.2节,“mysql 客户端命令”):

mysql> tee diag.out;
mysql> CALL sys.diagnostics(120, 30, 'current');
mysql> notee;