PmaControl logo PmaControl
  • Главная
  • PmaControl
    • ИИ-агенты 13 on-premise агентов
    • Тарифы Community, Cloud, On-Premise, Premium
    • Документация Руководства, API, архитектура
    • Клиенты 28+ компаний
    • FAQ 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 статьи
    Решения
    • Поддержка 24×7 Экстренная помощь MariaDB & MySQL
    • Observabilité SQL Мониторинг, алерты, топология
    • Haute disponibilité Репликация, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Аудит, GDPR, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Тарифы
  • Ресурсы
    • Документация Технические руководства и API
    • FAQ 25 частых вопросов
    • Отзывы Отзывы клиентов и кейсы
    • Блог Статьи и аналитика
    • Roadmap Планируемые функции
    Области экспертизы
    • Observabilité SQL Мониторинг, алерты, топология Dot3
    • Haute disponibilité Репликация, failover, Galera
    • Sécurité & conformité Аудит, GDPR, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Быстрые ссылки
    • Wiki GitHub 26 страниц — установка, движок, плагины
    • Исходный код Официальный репозиторий GitHub
    • Поддержка 24×7 Экстренная помощь MariaDB & MySQL
    • Записаться на демо 30 мин — реальная архитектура
  • Поддержка 24×7
  • Записаться на демо
Записаться на демо
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Вернуться в блог

PmaControl — Итоги спринта апрель 2026: 114 коммитов, MySQL 8.4, анализ binlog, IPv6

Опубликовано April 15, 2026 Автор Aurélien LEQUOY
pmacontrol release mysql mariadb replication binlog ipv6 monitoring architecture
Поделиться X LinkedIn Facebook Email PDF
PmaControl — Итоги спринта апрель 2026: 114 коммитов, MySQL 8.4, анализ binlog, IPv6

В цифрах

  • 114 коммитов за 4 дня
  • 266 тестов PHPUnit, 738 проверок (assertions)
  • 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
Статус мастера SHOW MASTER STATUS SHOW BINARY LOG STATUS
GTID MASTER_USE_GTID = slave_pos SET PERSIST gtid_mode = ON (4 этапа)

Активация GTID на MySQL требует поэтапной миграции (OFF → OFF_PERMISSIVE → ON_PERMISSIVE → ON) сначала на мастере, затем на слейве. PmaControl управляет всем автоматически, включая SET PERSIST для сохранения настроек без редактирования my.cnf.

2. Анализ binlog

Новый инструмент анализа binlog, доступный со страницы репликации каждого слейва. Выберите временной диапазон, и PmaControl:

  1. Скачивает файлы binlog через протокол MySQL (как IO thread)
  2. Парсит события GTID (параллелизм, размер транзакций)
  3. Подсчитывает DML по таблицам (INSERT/UPDATE/DELETE)
  4. Вычисляет объём в секунду
  5. Обнаруживает DDL (ALTER TABLE, DROP и т.д.)
  6. Генерирует рекомендации на основе реальной конфигурации мастера и слейва

Интерактивные графики:

  • Объём КБ/с + лаг репликации (двойная ось Y, синхронизированное масштабирование)
  • Транзакции/секунду + threads_running на мастере и слейве
  • Treemaps DML по базам данных и таблицам (пересчитываются при масштабировании)
  • Таблица DDL с цветовой маркировкой по типу (ALTER=оранжевый, DROP=красный, CREATE=зелёный)

Умное кеширование: скачанные binlog хранятся в data/binlog_analysis/{server_id}/ с TTL 30 дней. Повторный анализ за тот же период выполняется практически мгновенно.

Безопасность: учётные данные MySQL больше не видны в ps aux — используется временный файл .my.cnf с chmod 0600.

3. Multi-source репликация

Серверы MariaDB с multi-source репликацией (например, production_all, реплицирующий с production_fr, production_uk, production_ro) теперь отображают:

  • Вкладки: по одной на каждый канал репликации + вкладка «+» для добавления нового источника
  • Форму настройки: полный CHANGE MASTER (host, port, user, password, GTID, SSL, replicate_do_db)
  • Фильтрованные графики: каждая вкладка показывает только данные о лаге своего канала

4. GeoIP IPv4 + IPv6

Флаги стран на странице серверов теперь работают с IPv6-адресами. Все диапазоны GeoLite2 (650K IPv4 + 1.95M IPv6 = 2.6M диапазонов) импортированы в MariaDB для SQL-запросов за < 1 мс.

5. Group Replication / InnoDB Cluster

Новая страница в меню Архитектура > Group Replication:

  • Надёжное определение роли PRIMARY/SECONDARY через performance_schema.replication_group_members
  • Отображение в графе Dot3 (подгруппы Primary зелёным / Replica синим)
  • Статусы ONLINE/RECOVERING/ERROR/OFFLINE с цветовой индикацией

6. Редизайн Dashboard Home

Главная страница теперь отображает:

  • KPI: количество серверов, доступность (%), репликация (%), демоны
  • Алерты: список недоступных серверов (только мониторируемые)
  • Распределение: окружения, клиенты, версии (горизонтальные гистограммы)
  • Демоны: компактная сетка с индикаторами running/stopped/error

7. Роль ReadOnly

Новая роль ReadOnly (group_id=10) со 134 явно разрешёнными действиями, без wildcard. Запрещено: любая запись, управление репликацией, пароли, отладка, тяжёлые запросы к information_schema, управление демонами.

8. Обновлённые страницы

  • Client/index: сетка карточек с health bar, inline-редактирование, переключатель мониторинга
  • Architecture/index: заголовок с тёмно-синим градиентом, аккуратная SVG-сетка
  • Slave/show: вкладки multi-source, графики Chart.js 4.5.1 с синхронизированным масштабированием

Исправленные ошибки

Безопасность

  • Санитизация connection_name против SQL-инъекций в 5 методах
  • Белый список редактируемых полей в Client::update()
  • Пароль скрыт в списке процессов (--defaults-extra-file вместо --password=)

Стабильность

  • Рассинхронизация партиций ts_value между таблицами (исправление: создание per-table + включение текущего дня)
  • Extraction2: sql_query_silent для отсутствующих партиций
  • Анализ binlog: обнаружение зависания вместо фиксированного таймаута (120с без роста = kill)
  • testAccessReplication(): добавлена привилегия BINLOG MONITOR для MariaDB 10.5+
  • slave_connections_needed_for_purge=0 перед очисткой binlog

UI

  • Sparklines Chart.js мигрированы с v2 на v4
  • Коллизия Canvas ID на графиках multi-channel
  • «Load previous day» всегда декрементирует даже при отсутствии данных
  • Исправлены хаотичные тултипы (режим nearest вместо index)
  • Тултипы для столбцов sys schema (документировано 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)
  • Потеря SSL-статуса при нормализации MySQL 8 (#116)
  • Dashboard Home: SingleStore классифицируется как MySQL (#130), повторное использование PID (#129), seconds_behind_source (#126)

Устаревшее:

  • Переименование базы данных с collation (#26)
  • Кодировка LDAP (#40)
  • Имена таблиц с дефисами в Graphviz (#65)
  • Устаревший strlen в SqlFormatter (#72)

Запланированные улучшения

  • Агрегация временных рядов: raw → 1min → 1hr → 1day со stddev для обнаружения аномалий
  • Алертинг: уведомления через Telegram/email о лаге, недоступности сервера, дисковом пространстве
  • Система плагинов: установка/удаление из 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