Oracle ACE

MySQL

MySQL 9.5.0 新特性之 mysqldm

2025年10月21日,MySQL 9.5.0 创新版发布,该版本引入了一个新的诊断监控工具 MySQL Diagnostic Monitor(mysqldm) ,这是一个专门用于自动收集服务器诊断信息的客户端工具,主要面向企业版用户用于故障排查和性能分析。

01. mysqldm 核心特性

MySQL 企业版专属的自动诊断采集工具是一项强大的运维功能,它能够自动执行包括进程列表、锁状态及性能指标在内的预定义诊断查询集,从而免去了手动执行多条 SQL 的繁琐过程。该工具支持灵活的采集策略,允许用户自定义输出目录,并精确设置采集的迭代次数与间隔延迟。为了便于程序化分析或直接提交给 Oracle Support 进行故障排查,所有的诊断结果均以结构化的 JSON 格式进行存储。

在 MySQL 诊断工具的演进中,相较于操作复杂度高且需记忆多条指令的手动 SQL 查询,以及需要熟悉复杂表结构的 Performance Schema 和调用存储过程的 sys Schema,MySQL 9.5 引入的新特性 mysqldm 实现了显著突破。它拥有极低的操作门槛,支持一键执行,并能自动生成利于程序化处理的结构化 JSON 格式报告,在自动化程度和输出规范性上均远优于传统方式。

02. 典型使用场景

  1. 故障现场信息收集

当数据库出现性能问题或故障时,快速收集当前状态快照:

1
2
# 单次快速采集当前诊断信息
mysqldm -h localhost -u root -p --iterations=1 --output-dir=./

采集后会将所有文件打成一个压缩包。解压后,可以看到收集上来的 json 文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@rl9 mysqldm-output]# ls
available_storage_engines.json replication_applier_global_filters.json
engine_summary.json replication_applier_status_by_coordinator.json
engine_support.json replication_applier_status_by_worker.json
engine_table_usage_summary.json replication_applier_status.json
error_log.json replication_asynchronous_connection_failover.json
events_statements_summary_global_by_event_name.json replication_asynchronous_connection_failover_managed.json
global_variables_details.json replication_connection_configuration.json
host_cache.json replication_connection_status.json
innodb_lock_waits.json replication_group_members.json
innodb_metrics.json replication_group_member_stats.json
innodb_trx.json routine_count.json
instance_summary.json schema_lock_waits.json
memory_by_host.json session_ssl_status.json
memory_by_thread.json show_binary_logs.json
memory_by_user.json show_binary_log_status.json
memory_global.json show_engine_innodb_status.json
metadata_locks.json show_engine_performance_schema_status.json
mysqldm-20251210014824.zip show_full_processlist.json
mysqldm_start_time.json show_global_status.json
mysql_slave_master_info.json show_global_variables.json
mysql_slave_relay_log_info.json show_open_tables.json
now.json show_replicas.json
option_usage.json show_replica_status.json
performance_schema_setup_actors.json sys_host_summary.json
performance_schema_setup_consumers.json sys_metrics.json
performance_schema_setup_instruments_enabled_pct.json sys_processlist.json
performance_schema_setup_objects.json sys_schema_object_overview.json
performance_schema_thread_instrumented_pct.json sys_session.json
persisted_variables.json sys_unused_indexes.json
ps_event_waits_current.json table_count.json
replication_applier_configuration.json threads.json
replication_applier_filters.json xa_recover.json
[root@rl9 mysqldm-output]#
  1. 持续监控采集

对间歇性问题进行多次采样:

1
2
3
4
# 每 30 秒采集一次,共采集 10 次(持续 5 分钟)
mysqldm -h localhost -u root -p \
--iterations=10 \
--delay=30
  1. 支持工单提交

标准化收集的信息可直接提交给 Oracle Support,减少来回沟通成本 。

  1. 注意事项
  • 版本限制:该工具仅在 MySQL 9.5.0+ 的企业版中提供,社区版用户需继续使用 Percona Toolkit 或手动查询 performance_schema / sys 系统库 。
  • 权限要求:执行诊断查询需要足够的权限访问性能模式表和线程信息。

03. 与其他监控工具的关系

mysqldm 定位为轻量级、即时性的诊断采集工具,与 MySQL Enterprise Monitor 长期监控和告警平台、Performance Schema / sys Schema 形成互补。

mysqldm 简化了 DBA 在故障排查时的信息收集流程,提供了标准化 JSON 输出,是 MySQL 9.5 企业版中提升可观测性的重要工具。


Have a nice day ~ ☕

🌻 近期内容 ▼

👉 这里有得聊

如果对国产基础软件(操作系统、数据库、中间件)、AI、Vibe Coding、OpenClaw 、Hermes Agent 等感兴趣,可以加群一起聊聊。关注微信公众号:(少安事务所),后台回复[群],即可看到入口。如果这篇文章为你带来了灵感或启发,请帮忙『点赞、推荐、转发』吧,感谢!ღ( ´・ᴗ・` )~