PmaControl logo PmaControl
  • Accueil
  • PmaControl
    • Agents IA 13 agents on-premise
    • Nos offres Community, Cloud, On-Premise, Premium
    • Documentation Guides, API, architecture
    • Clients 28+ entreprises
    • FAQ 25 questions / 7 catégories
    Bases de données
    • MariaDB 30 articles
    • MySQL 10 articles
    • Galera Cluster 6 articles
    • MaxScale 3 articles
    • ProxySQL 2 articles
    • Amazon Aurora MySQL 0 article
    • Azure Database 0 article
    • ClickHouse 0 article
    • GCP CloudSQL 0 article
    • Percona Server 0 article
    • SingleStore 0 article
    • TiDB 0 article
    • Vitess 0 article
    Solutions
    • Support 24×7 Urgences MariaDB & MySQL
    • Observabilité SQL Monitoring, alertes, topologie
    • Haute disponibilité Réplication, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Audit, RGPD, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Nos offres
  • Ressources
    • Documentation Guides techniques & API
    • FAQ 25 questions fréquentes
    • Témoignages Retours clients & cas d'usage
    • Blog Articles & insights
    • Roadmap Fonctionnalités à venir
    Domaines d'expertise
    • Observabilité SQL Monitoring, alertes, topologie Dot3
    • Haute disponibilité Réplication, failover, Galera
    • Sécurité & conformité Audit, RGPD, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Liens rapides
    • Wiki GitHub 26 pages — install, engine, plugins
    • Code source Repository GitHub officiel
    • Support 24×7 Urgences MariaDB & MySQL
    • Réserver une démo 30 min — architecture réelle
  • Support 24×7
  • Réserver une démo
Réserver une démo
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Retour au blog

PmaControl — Bilan du sprint avril 2026 : 114 commits, MySQL 8.4, binlog analysis, IPv6

Publié le 15 avril 2026 Par Aurélien LEQUOY
pmacontrol release mysql mariadb replication binlog ipv6 monitoring architecture
Partager X LinkedIn Facebook Email PDF
PmaControl — Bilan du sprint avril 2026 : 114 commits, MySQL 8.4, binlog analysis, IPv6

En chiffres

  • 114 commits en 4 jours
  • 266 tests PHPUnit, 738 assertions
  • 35 tickets GitHub traités (20 fermés, 15 ouverts avec solution proposée)
  • 12 nouvelles features
  • 0 régression (tous les tests passent)

Les nouveautés

1. Compatibilité complète MySQL 8.4

MySQL 8.4 a supprimé les commandes SLAVE au profit de REPLICA. PmaControl détecte maintenant automatiquement le fork (MariaDB vs MySQL) et utilise la bonne syntaxe :

Action MariaDB MySQL 8.4+
Arrêter la réplication STOP SLAVE 'conn' STOP REPLICA FOR CHANNEL 'conn'
Changer la source CHANGE MASTER TO ... CHANGE REPLICATION SOURCE TO ...
Threads parallèles slave_parallel_threads replica_parallel_workers
Status master SHOW MASTER STATUS SHOW BINARY LOG STATUS
GTID MASTER_USE_GTID = slave_pos SET PERSIST gtid_mode = ON (4 étapes)

L'activation GTID sur MySQL requiert une migration progressive (OFF → OFF_PERMISSIVE → ON_PERMISSIVE → ON) sur le master puis le slave. PmaControl gère tout automatiquement, y compris SET PERSIST pour la persistance sans toucher à my.cnf.

2. Analyse de binlogs

Nouvel outil d'analyse des binlogs accessible depuis la page réplication de chaque slave. Sélectionnez une plage horaire, PmaControl :

  1. Télécharge les fichiers binlog via le protocole MySQL (comme un IO thread)
  2. Parse les events GTID (parallélisme, taille des transactions)
  3. Compte les DML par table (INSERT/UPDATE/DELETE)
  4. Calcule le volume par seconde
  5. Détecte les DDL (ALTER TABLE, DROP, etc.)
  6. Génère des recommandations basées sur la config réelle du master et du slave

Graphiques interactifs :

  • Volume KB/s + replication lag (axe Y double, zoom synchronisé)
  • Transactions/seconde + threads_running master et slave
  • Treemaps DML par base de données et par table (recalculés au zoom)
  • Table DDL colorée par type (ALTER=orange, DROP=rouge, CREATE=vert)

Cache intelligent : les binlogs téléchargés sont stockés dans data/binlog_analysis/{server_id}/ avec un TTL de 30 jours. Une analyse sur la même plage horaire est quasi-instantanée.

Sécurité : les credentials MySQL ne sont plus visibles dans ps aux — utilisation d'un fichier .my.cnf temporaire avec chmod 0600.

3. Multi-source replication

Les serveurs MariaDB multi-source (comme production_all qui réplique depuis production_fr, production_uk, production_ro) affichent maintenant :

  • Onglets : un par canal de réplication + un onglet "+" pour ajouter une nouvelle source
  • Formulaire de setup : CHANGE MASTER complet (host, port, user, password, GTID, SSL, replicate_do_db)
  • Graphiques filtrés : chaque onglet n'affiche que les données de lag de son canal

4. GeoIP IPv4 + IPv6

Les drapeaux pays sur la page serveurs fonctionnent maintenant avec les adresses IPv6. L'intégralité des ranges GeoLite2 (650K IPv4 + 1.95M IPv6 = 2.6M ranges) est importée dans MariaDB pour des lookups SQL < 1ms.

5. Group Replication / InnoDB Cluster

Nouvelle page dans le menu Architecture > Group Replication :

  • Détection fiable du rôle PRIMARY/SECONDARY via performance_schema.replication_group_members
  • Affichage dans le graphe Dot3 (sous-groupes Primary vert / Replica bleu)
  • État ONLINE/RECOVERING/ERROR/OFFLINE avec couleurs

6. Dashboard Home redesigné

La page d'accueil affiche maintenant :

  • KPIs : nombre de serveurs, disponibilité (%), réplication (%), daemons
  • Alertes : liste des serveurs down (monitorés uniquement)
  • Répartition : environnements, clients, versions (barres horizontales)
  • Daemons : grille compacte avec badge running/stopped/error

7. Rôle ReadOnly

Nouveau rôle ReadOnly (group_id=10) avec 134 actions explicitement autorisées, aucun wildcard. Interdit : toute écriture, contrôle réplication, mots de passe, debug, requêtes lourdes sur information_schema, contrôle des daemons.

8. Pages redesignées

  • Client/index : grille de cartes avec health bar, édition inline, toggle monitoring
  • Architecture/index : header dégradé bleu foncé, grille SVG propre
  • Slave/show : onglets multi-source, graphiques Chart.js 4.5.1 avec zoom synchronisé

Bugs corrigés

Sécurité

  • Sanitization connection_name contre l'injection SQL dans 5 méthodes
  • Whitelist des champs éditables dans Client::update()
  • Password caché dans les process list (--defaults-extra-file au lieu de --password=)

Stabilité

  • Partitions ts_value désynchronisées entre tables (fix : création per-table + today inclus)
  • Extraction2 : sql_query_silent pour les partitions manquantes
  • Binlog analysis : stall detection au lieu de timeout fixe (120s sans croissance = kill)
  • testAccessReplication() : ajout BINLOG MONITOR pour MariaDB 10.5+
  • slave_connections_needed_for_purge=0 avant purge des binlogs

UI

  • Chart.js sparklines migrées de v2 à v4
  • Canvas ID collision sur les graphes multi-channel
  • "Load previous day" toujours décrémente même sans données
  • Tooltips erratiques corrigés (mode nearest au lieu de index)
  • Tooltips colonnes sys schema (100+ colonnes documentées)

Roadmap — ce qui reste

Tickets ouverts (35)

Installeur Debian 13 (7 tickets) :

  • Mots de passe prédictibles (#123)
  • Credentials en clair dans /tmp/config.json (#117)
  • Clé SSH privée dans le repo (#114)
  • Version MariaDB ignorée (#120)
  • Ownership /var/www (#119)

Binlog Analysis :

  • Timeline Gantt alignée avec les graphes (#106)
  • Analyse lancée en double (#122)
  • Cache d'écriture non atomique pour les logs MySQL (#121)

Data quality :

  • Lag normalization NULL → 0 (#113)
  • SSL state perdu dans la normalisation MySQL 8 (#116)
  • Home dashboard : SingleStore classé comme MySQL (#130), PID reuse (#129), seconds_behind_source (#126)

Legacy :

  • Rename database avec collation (#26)
  • LDAP encoding (#40)
  • Table names avec tirets dans Graphviz (#65)
  • SqlFormatter deprecated strlen (#72)

Améliorations prévues

  • Agrégation time-series : raw → 1min → 1hr → 1day avec stddev pour détection d'anomalies
  • Alerting : notifications Telegram/email sur lag, serveur down, espace disque
  • Système de plugins : install/uninstall depuis GitHub
  • API REST : exposition des métriques pour intégration externe

Liens

  • GitHub : github.com/PmaControl/PmaControl
  • Telegram : t.me/pmacontrol
  • Tickets ouverts : Issues

PmaControl est un outil open-source de supervision MySQL/MariaDB. Contributions bienvenues.

Partager X LinkedIn Facebook Email PDF
← Retour au blog

Commentaires (0)

Aucun commentaire pour le moment.

Laisser un commentaire

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Mentions légales GitHub Contact
N'attendez pas l'incident pour comprendre votre architecture. © 2014-2026 PmaControl — 68Koncept