调试和诊断实用程序 util.debug.collectDiagnostics()
允许您收集有关 MySQL 服务器的诊断数据。
诊断报告将作为 zip 文件生成到本地目录或指定路径。
util.debug.collectDiagnostics()
允许您从独立服务器、复制拓扑的成员、InnoDB 集群和 MySQL HeatWave 服务数据库系统收集原始诊断数据。
该实用程序以 TSV 和 YAML 格式生成文件。
诊断实用程序具有以下签名
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/")
以下示例在 C:/Temp/
目录中生成一个名为 myDiagnostics.zip
的默认诊断集
util.debug.collectDiagnostics("C:/Temp/myDiagnostics.zip")
尾部的斜杠是必需的,用于定义路径。如果您省略它,该实用程序将在命名路径中创建一个名为 Temp.zip
的文件。例如 C:/Temp.zip
。无法覆盖现有文件。
主机信息 (host_info
) 仅从 localhost 收集。无法从远程主机收集主机信息。如果您的 MySQL 服务器在远程主机上运行,则仅收集 MySQL 服务器信息。
在 Microsoft Windows 平台上,主机信息是使用 MSInfo
实用程序收集的。这会在实用程序运行时启动一个额外的进度对话框。
-
allMembers: [true|false]
-
默认值为
false
。如果设置为true
,则为受管拓扑(例如 InnoDB 集群)中的所有成员生成诊断,并 ping 拓扑中的每个成员。每个诊断都以数字为前缀,1(一个)表示 MySQL Shell 连接到的服务器,并为检测到的每个成员递增。仅当 Shell 连接到本地主机上的拓扑成员时才会生成 ping 结果 (
ping.txt
)。无法从远程主机请求 ping 结果。allMembers: true
不会创建其他报告。所有收集到的数据都包含在默认报告中。 -
innodbMutex: [true|false]
-
默认值为
false
。如果设置为true
,则收集SHOW ENGINE INNODB MUTEX
的输出。此选项将生成以下其他报告
innodb_mutex
:列出SHOW ENGINE INNODB MUTEX
的输出。
注意此选项可能会影响性能。
-
schemaStats: [true|false]
-
默认值为
false
。如果设置为true
,则收集模式大小统计信息。此选项将生成以下其他报告
schema_object_overview
:列出schema_object_overview
视图的内容。top_biggest_tables
:列出连接服务器上最大的表以及性能缓慢的指标。
-
slowQueries: [true|false]
-
默认值为
false
。如果设置为true
,则从 慢查询日志 收集慢查询信息。此选项要求您在目标服务器上启用
slow_log
并将其输出配置为TABLE
。此选项将生成以下其他报告
slow_log
:列出mysql.slow_log
表的内容。
-
ignoreErrors: [true|false]
默认值为
false
。如果设置为true
,则忽略生成诊断报告所用查询生成的任何错误。-
customSql
:array
-
要运行的一个或多个 SQL 语句。
例如
{"customSql": ["statement1", "statement2", "statement3"]}
-
customShell
:array
-
要运行的一个或多个 shell(DOS、BOURNE 等)命令。
例如
{"customShell": ["command1", "command2", "command3"]}
重要这些命令以运行 MySQL Shell 的用户的权限运行,应谨慎使用。