PmaControl logo PmaControl
  • 首页
  • PmaControl
    • AI智能代理 13个本地代理
    • 定价方案 Community、Cloud、On-Premise、Premium
    • 文档 指南、API、架构
    • 客户 28+企业
    • 常见问题 25个问题 / 7个类别
    数据库
    • MariaDB 30 篇文章
    • MySQL 10 篇文章
    • Galera Cluster 6 篇文章
    • MaxScale 3 篇文章
    • ProxySQL 2 篇文章
    • Amazon Aurora MySQL 0 篇文章
    • Azure Database 0 篇文章
    • ClickHouse 0 篇文章
    • GCP CloudSQL 0 篇文章
    • Percona Server 0 篇文章
    • SingleStore 0 篇文章
    • TiDB 0 篇文章
    • Vitess 0 篇文章
    解决方案
    • 全天候支持 MariaDB & MySQL紧急支持
    • Observabilité SQL 监控、告警、拓扑
    • Haute disponibilité 复制、故障转移、Galera
    • Disaster Recovery 备份、恢复、RPO/RTO
    • Sécurité & conformité 审计、GDPR、SOC2
    • Migration & upgrade 零停机、pt-osc、gh-ost
  • 定价方案
  • 资源
    • 文档 技术指南与API
    • 常见问题 25个常见问题
    • 客户评价 客户反馈与案例
    • 博客 文章与洞察
    • 路线图 即将推出的功能
    专业领域
    • Observabilité SQL 监控、告警、Dot3拓扑
    • Haute disponibilité 复制、故障转移、Galera
    • Sécurité & conformité 审计、GDPR、SOC2、ISO 27001
    • Disaster Recovery 备份、恢复、RPO/RTO
    • Performance & optimisation Digests、EXPLAIN、调优
    • Migration & upgrade 零停机、pt-osc
    快速链接
    • GitHub Wiki 26页 — 安装、引擎、插件
    • 源代码 GitHub官方仓库
    • 全天候支持 MariaDB & MySQL紧急支持
    • 预约演示 30分钟 — 真实架构
  • 全天候支持
  • 预约演示
预约演示
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← 返回博客

PmaControl — 2026 年 4 月冲刺总结:114 次提交、MySQL 8.4、binlog 分析、IPv6

发布于 2026年4月15日 作者 Aurélien LEQUOY
pmacontrol release mysql mariadb replication binlog ipv6 monitoring architecture
分享 X LinkedIn Facebook Email PDF
PmaControl — 2026 年 4 月冲刺总结:114 次提交、MySQL 8.4、binlog 分析、IPv6

数据一览

  • 114 次提交,历时 4 天
  • 266 个 PHPUnit 测试,738 个断言
  • 35 个 GitHub 工单处理完毕(20 个已关闭,15 个已提出解决方案)
  • 12 个新功能
  • 0 个回归(所有测试通过)

新功能

1. 完整的 MySQL 8.4 兼容性

MySQL 8.4 已移除 SLAVE 命令,改用 REPLICA。PmaControl 现在能自动检测分支(MariaDB 还是 MySQL)并使用正确的语法:

操作 MariaDB MySQL 8.4+
停止复制 STOP SLAVE 'conn' STOP REPLICA FOR CHANNEL 'conn'
更改源 CHANGE MASTER TO ... CHANGE REPLICATION SOURCE TO ...
并行线程 slave_parallel_threads replica_parallel_workers
Master 状态 SHOW MASTER STATUS SHOW BINARY LOG STATUS
GTID MASTER_USE_GTID = slave_pos SET PERSIST gtid_mode = ON(4 个步骤)

在 MySQL 上激活 GTID 需要渐进式迁移(OFF → OFF_PERMISSIVE → ON_PERMISSIVE → ON),先在 master 上然后在 slave 上执行。PmaControl 自动处理所有步骤,包括使用 SET PERSIST 实现持久化而无需修改 my.cnf。

2. Binlog 分析

新增 binlog 分析工具,可从每个 slave 的复制页面访问。选择时间范围后,PmaControl 会:

  1. 通过 MySQL 协议下载 binlog 文件(如同 IO 线程)
  2. 解析 GTID 事件(并行性、事务大小)
  3. 按表统计 DML(INSERT/UPDATE/DELETE)
  4. 计算每秒数据量
  5. 检测 DDL(ALTER TABLE、DROP 等)
  6. 根据 master 和 slave 的实际配置生成建议

交互式图表:

  • KB/s 流量 + 复制延迟(双 Y 轴,同步缩放)
  • 事务/秒 + master 和 slave 的 threads_running
  • 按数据库和表分类的 DML 树状图(随缩放重新计算)
  • 按类型着色的 DDL 表格(ALTER=橙色、DROP=红色、CREATE=绿色)

智能缓存:下载的 binlog 存储在 data/binlog_analysis/{server_id}/ 中,TTL 为 30 天。对同一时间范围的分析几乎是即时的。

安全性:MySQL 凭据不再在 ps aux 中可见——使用临时 .my.cnf 文件并设置 chmod 0600。

3. 多源复制

MariaDB 多源服务器(如从 production_fr、production_uk、production_ro 复制的 production_all)现在显示:

  • 选项卡:每个复制通道一个选项卡 + 一个"+"选项卡用于添加新源
  • 设置表单:完整的 CHANGE MASTER(host、port、user、password、GTID、SSL、replicate_do_db)
  • 过滤图表:每个选项卡仅显示其通道的延迟数据

4. GeoIP IPv4 + IPv6

服务器页面上的国旗标识现在支持 IPv6 地址。全部 GeoLite2 范围(650K IPv4 + 1.95M IPv6 = 260 万个范围)已导入 MariaDB,SQL 查询耗时 < 1ms。

5. Group Replication / InnoDB Cluster

架构菜单中新增 Group Replication 页面:

  • 通过 performance_schema.replication_group_members 可靠检测 PRIMARY/SECONDARY 角色
  • 在 Dot3 图中显示(Primary 绿色子组 / Replica 蓝色子组)
  • ONLINE/RECOVERING/ERROR/OFFLINE 状态以颜色区分

6. 首页仪表盘重新设计

首页现在显示:

  • KPI:服务器数量、可用性(%)、复制状态(%)、守护进程
  • 告警:宕机服务器列表(仅监控中的)
  • 分布:环境、客户、版本(水平条形图)
  • 守护进程:紧凑网格,带 running/stopped/error 徽章

7. ReadOnly 角色

新增 ReadOnly 角色(group_id=10),包含 134 个显式授权的操作,无通配符。禁止:所有写操作、复制控制、密码操作、调试、对 information_schema 的重量级查询、守护进程控制。

8. 页面重新设计

  • Client/index:带健康状态条的卡片网格、行内编辑、监控开关
  • Architecture/index:深蓝色渐变头部、整洁的 SVG 网格
  • Slave/show:多源选项卡、Chart.js 4.5.1 图表带同步缩放

修复的 Bug

安全

  • 在 5 个方法中对 connection_name 进行 SQL 注入清理
  • Client::update() 中可编辑字段白名单
  • 进程列表中隐藏密码(使用 --defaults-extra-file 代替 --password=)

稳定性

  • ts_value 分区在表间不同步(修复:按表创建 + 包含今天)
  • Extraction2:对缺失分区使用 sql_query_silent
  • Binlog 分析:使用停滞检测代替固定超时(120 秒无增长 = 终止)
  • testAccessReplication():为 MariaDB 10.5+ 添加 BINLOG MONITOR
  • 清除 binlog 前设置 slave_connections_needed_for_purge=0

UI

  • Chart.js 迷你图从 v2 迁移到 v4
  • 多通道图表的 Canvas ID 冲突
  • "加载前一天"始终递减,即使没有数据
  • 修复不稳定的 Tooltips(使用 nearest 模式代替 index)
  • sys schema 列的 Tooltips(100+ 列已文档化)

路线图——待完成事项

开放工单(35 个)

Debian 13 安装器(7 个工单):

  • 可预测的密码 (#123)
  • /tmp/config.json 中的明文凭据 (#117)
  • 仓库中的 SSH 私钥 (#114)
  • MariaDB 版本被忽略 (#120)
  • /var/www 所有权问题 (#119)

Binlog 分析:

  • Gantt 时间线与图表对齐 (#106)
  • 分析被重复启动 (#122)
  • MySQL 日志的非原子写入缓存 (#121)

数据质量:

  • 延迟规范化 NULL → 0 (#113)
  • MySQL 8 规范化中丢失 SSL 状态 (#116)
  • 首页仪表盘:SingleStore 被分类为 MySQL (#130)、PID 重用 (#129)、seconds_behind_source (#126)

遗留问题:

  • 带排序规则的数据库重命名 (#26)
  • LDAP 编码 (#40)
  • Graphviz 中带连字符的表名 (#65)
  • SqlFormatter 已弃用的 strlen (#72)

计划中的改进

  • 时间序列聚合:raw → 1min → 1hr → 1day,带标准差用于异常检测
  • 告警:延迟、服务器宕机、磁盘空间的 Telegram/邮件通知
  • 插件系统:从 GitHub 安装/卸载
  • REST API:暴露指标用于外部集成

链接

  • GitHub:github.com/PmaControl/PmaControl
  • Telegram:t.me/pmacontrol
  • 开放工单:Issues

PmaControl 是一款开源的 MariaDB / MySQL 监控工具。欢迎贡献。

分享 X LinkedIn Facebook Email PDF
← 返回博客

评论 (0)

暂无评论。

发表评论

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
法律声明 GitHub 联系我们
不要等到故障发生才了解您的架构。 © 2014-2026 PmaControl — 68Koncept