Documentation Home
MySQL 外壳 8.0  / 第 11 章 MySQL Shell 实用程序  / 11.7 诊断实用程序  /  11.7.1 collectDiagnostics 实用程序

11.7.1 collectDiagnostics 实用程序

调试和诊断实用程序 util.debug.collectDiagnostics()使您能够收集 MySQL 服务器上的诊断数据。

关于实用程序

诊断报告以 zip 文件的形式生成到本地目录或指定路径。

util.debug.collectDiagnostics()使您能够从独立服务器、复制拓扑成员、InnoDB 集群和 MySQL 数据库服务数据库系统收集原始诊断数据。

该实用程序生成 TSV 和 YAML 格式的文件。

要求和限制

以下要求适用于使用诊断收集实用程序的导出:

  • 需要 MySQL 5.7 或更高版本。

  • 该实用程序必须以根用户身份运行。

运行实用程序

诊断实用程序具有以下签名:

util.debug.collectDiagnostics("path/",{options})
  • "path":您可以指定路径、文件名或路径和文件名。

    如果未提供文件名,则将文件写入指定位置并使用文件名 。 mysql-diagnostics-YYYYMMDD-HHMMSS.zip

    如果提供的文件名没有路径,则文件将写入当前目录。

  • options: 选项字典,如果为空则可以省略。有关 可用选项,请参阅收集诊断 的选项。

    如果未定义选项,该实用程序会生成一组默认的诊断信息。每个选项都会向输出添加一个或多个报告。

以下示例于 2022 年 4 月 6 日上午 10:02:06 运行,在目录中生成一组默认诊断 mysql-diagnostics-20220406-100206.zip信息 C:/Temp/

util.debug.collectDiagnostics("C:/Temp/")

以下示例myDiagnostics.zipC:/Temp/目录中命名的文件中生成一组默认诊断:

util.debug.collectDiagnostics("C:/Temp/myDiagnostics.zip")

需要尾部正斜杠来定义路径。如果省略它,该实用程序将创建一个以 Temp.zip命名路径命名的文件。 C:/Temp.zip例如。

无法覆盖现有文件。

无法从远程主机收集主机信息。如果您的 MySQL 服务器在远程主机上运行,​​则仅收集 MySQL 服务器信息。

MSinfo在 Microsoft Windows 平台上,主机信息是使用该实用程序 收集的。

收集诊断的选项

allMembers: [true|false]

默认false。如果设置为 true,则为托管拓扑的所有成员生成诊断,例如 InnoDB Cluster。每个诊断都以一个数字为前缀,1(一)代表 MySQL Shell 连接到的服务器,并为检测到的每个成员递增。

ping.txt仅当 Shell 连接到本地主机上的拓扑成员时,才会生成 Ping 详细信息 ( )。无法从远程主机请求 ping 详细信息。

allMembers: true不会创建额外的报告。所有收集的数据都包含在默认报告中。

笔记

默认扫描托管拓扑的所有成员,例如 InnoDB Cluster。要停用此扫描,并仅扫描 MySQL Shell 连接到的 MySQL 服务器,您必须明确地将此选项设置为 False

innodbMutex: [true|false]

默认false。如果设置为 true,则收集 的输出 SHOW ENGINE INNODB MUTEX

此选项生成以下附加报告:

笔记

此选项会影响性能。

schemaStats: [true|false]

默认false。如果设置为 true,则收集架构大小统计信息。

此选项生成以下附加报告:

  • schema_object_overview:列出 schema_object_overview 视图的内容。

  • top_biggest_tables:列出连接的服务器上最大的表和缓慢的性能指标。

slowQueries: [true|false]

默认false。如果设置为 ,则从The Slow Query Logtrue收集慢查询信息。

此选项要求您 slow_log在目标服务器上启用并将其输出配置为TABLE.

此选项生成以下附加报告:

  • slow_log:列出表的内容 mysql.slow_log

ignoreErrors: [true|false]

默认false。如果设置为 true,则忽略用于生成诊断报告的查询生成的任何错误。

自定义SQL:array

要运行的一个或多个 SQL 语句。

定制外壳array

要运行的一个或多个 shell(DOS、BOURNE 等)命令。