PmaControl logo PmaControl
  • Strona główna
  • Strona główna
    • PmaControl PmaControl
    • PmaControl PmaControl
    • PmaControl PmaControl
    • PmaControl PmaControl
    • Agenci AI Agenci AI
    Klienci
    • MariaDB 30 artykułów
    • MySQL 10 artykułów
    • Galera Cluster 6 artykułów
    • MaxScale 3 artykuły
    • ProxySQL 2 artykuły
    • Amazon Aurora MySQL 0 artykuły
    • Azure Database 0 artykuły
    • ClickHouse 0 artykuły
    • GCP CloudSQL 0 artykuły
    • Percona Server 0 artykuły
    • SingleStore 0 artykuły
    • TiDB 0 artykuły
    • Vitess 0 artykuły
    Bazy danych
    • Rozwiązania Rozwiązania
    • Observabilité SQL Rozwiązania
    • Haute disponibilité Rozwiązania
    • Disaster Recovery Rozwiązania
    • Sécurité & conformité Wsparcie 24×7
    • Migration & upgrade Wsparcie 24×7
  • PmaControl
  • Cennik
    • PmaControl Zasoby
    • Agenci AI Zasoby
    • Zasoby Zasoby
    • Zasoby Zasoby
    • Dokumentacja Dokumentacja
    Blog
    • Observabilité SQL Obszary ekspertyzy
    • Haute disponibilité Rozwiązania
    • Sécurité & conformité Obszary ekspertyzy
    • Disaster Recovery Rozwiązania
    • Performance & optimisation Obserwowalność SQL
    • Migration & upgrade Obserwowalność SQL
    Wydajność i optymalizacja
    • Szybkie linki Szybkie linki
    • Szybkie linki Szybkie linki
    • Rozwiązania Rozwiązania
    • Szybkie linki Szybkie linki
  • Rozwiązania
  • Szybkie linki
Szybkie linki
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文
← Powrót do bloga

PmaControl — Podsumowanie sprintu kwiecień 2026: 114 commitów, MySQL 8.4, analiza binlogów, IPv6

Powrót do bloga April 15, 2026 Powrót do bloga Aurélien LEQUOY
pmacontrol release mysql mariadb replication binlog ipv6 monitoring architecture
Powrót do bloga X LinkedIn Facebook Email PDF
PmaControl — Podsumowanie sprintu kwiecień 2026: 114 commitów, MySQL 8.4, analiza binlogów, IPv6

W liczbach

  • 114 commitów w 4 dni
  • 266 testów PHPUnit, 738 asercji
  • 35 ticketów GitHub obsłużonych (20 zamkniętych, 15 otwartych z proponowanym rozwiązaniem)
  • 12 nowych funkcji
  • 0 regresji (wszystkie testy przechodzą)

Nowości

1. Pełna kompatybilność z MySQL 8.4

MySQL 8.4 usunął komendy SLAVE na rzecz REPLICA. PmaControl teraz automatycznie wykrywa fork (MariaDB vs MySQL) i używa właściwej składni:

Akcja MariaDB MySQL 8.4+
Zatrzymanie replikacji STOP SLAVE 'conn' STOP REPLICA FOR CHANNEL 'conn'
Zmiana źródła CHANGE MASTER TO ... CHANGE REPLICATION SOURCE TO ...
Wątki równoległe slave_parallel_threads replica_parallel_workers
Status mastera SHOW MASTER STATUS SHOW BINARY LOG STATUS
GTID MASTER_USE_GTID = slave_pos SET PERSIST gtid_mode = ON (4 kroki)

Włączenie GTID na MySQL wymaga progresywnej migracji (OFF → OFF_PERMISSIVE → ON_PERMISSIVE → ON) na masterze, a następnie na slave'ie. PmaControl obsługuje wszystko automatycznie, w tym SET PERSIST dla trwałości bez ingerencji w my.cnf.

2. Analiza binlogów

Nowe narzędzie do analizy binlogów dostępne ze strony replikacji każdego slave'a. Wybierz zakres czasowy, a PmaControl:

  1. Pobiera pliki binlog przez protokół MySQL (jak wątek IO)
  2. Parsuje eventy GTID (równoległość, rozmiary transakcji)
  3. Zlicza DML na tabelę (INSERT/UPDATE/DELETE)
  4. Oblicza wolumen na sekundę
  5. Wykrywa DDL (ALTER TABLE, DROP itp.)
  6. Generuje rekomendacje na podstawie rzeczywistej konfiguracji mastera i slave'a

Interaktywne wykresy:

  • Wolumen KB/s + opóźnienie replikacji (podwójna oś Y, zsynchronizowany zoom)
  • Transakcje/sekundę + threads_running na masterze i slave'ie
  • Treemapy DML według bazy danych i tabeli (przeliczane przy zoomie)
  • Tabela DDL kolorowana według typu (ALTER=pomarańczowy, DROP=czerwony, CREATE=zielony)

Inteligentne cachowanie: pobrane binlogi są przechowywane w data/binlog_analysis/{server_id}/ z TTL 30 dni. Analiza na tym samym zakresie czasowym jest niemal natychmiastowa.

Bezpieczeństwo: dane uwierzytelniające MySQL nie są już widoczne w ps aux — zamiast tego używany jest tymczasowy plik .my.cnf z chmod 0600.

3. Replikacja multi-source

Serwery MariaDB multi-source (jak production_all, który replikuje z production_fr, production_uk, production_ro) wyświetlają teraz:

  • Karty: jedna na kanał replikacji + karta "+" do dodawania nowego źródła
  • Formularz konfiguracji: kompletny CHANGE MASTER (host, port, user, password, GTID, SSL, replicate_do_db)
  • Filtrowane wykresy: każda karta pokazuje tylko dane opóźnień swojego kanału

4. GeoIP IPv4 + IPv6

Flagi krajów na stronie serwerów działają teraz z adresami IPv6. Pełne zakresy GeoLite2 (650K IPv4 + 1,95M IPv6 = 2,6M zakresów) są importowane do MariaDB w celu zapytań SQL < 1ms.

5. Group Replication / InnoDB Cluster

Nowa strona w menu Architektura > Group Replication:

  • Niezawodne wykrywanie roli PRIMARY/SECONDARY przez performance_schema.replication_group_members
  • Wyświetlanie w grafie Dot3 (podgrupy: Primary na zielono / Replica na niebiesko)
  • Stan ONLINE/RECOVERING/ERROR/OFFLINE z kolorami

6. Przeprojektowany dashboard

Strona główna wyświetla teraz:

  • KPI: liczba serwerów, dostępność (%), replikacja (%), demony
  • Alerty: lista niedostępnych serwerów (tylko monitorowanych)
  • Rozkład: środowiska, klienci, wersje (poziome paski)
  • Demony: kompaktowa siatka ze znacznikami running/stopped/error

7. Rola ReadOnly

Nowa rola ReadOnly (group_id=10) ze 134 jawnie dozwolonymi akcjami, bez wildcardów. Zabronione: wszelkie zapisy, kontrola replikacji, hasła, debug, ciężkie zapytania na information_schema, kontrola demonów.

8. Przeprojektowane strony

  • Client/index: siatka kart z paskiem zdrowia, edycja inline, przełącznik monitorowania
  • Architecture/index: nagłówek z ciemnoniebieskim gradientem, czysta siatka SVG
  • Slave/show: karty multi-source, wykresy Chart.js 4.5.1 z zsynchronizowanym zoomem

Naprawione błędy

Bezpieczeństwo

  • Sanityzacja connection_name przeciwko SQL injection w 5 metodach
  • Whitelist edytowalnych pól w Client::update()
  • Hasło ukryte w listach procesów (--defaults-extra-file zamiast --password=)

Stabilność

  • Partycje ts_value zdesynchronizowane między tabelami (fix: tworzenie per-table + dzisiaj uwzględniony)
  • Extraction2: sql_query_silent dla brakujących partycji
  • Analiza binlogów: wykrywanie zatrzymania zamiast stałego timeoutu (120s bez wzrostu = kill)
  • testAccessReplication(): dodano BINLOG MONITOR dla MariaDB 10.5+
  • slave_connections_needed_for_purge=0 przed czyszczeniem binlogów

UI

  • Sparkline'y Chart.js zmigrowane z v2 do v4
  • Kolizja Canvas ID na wykresach wielokanałowych
  • "Load previous day" zawsze dekrementuje nawet bez danych
  • Poprawione niestabilne tooltipy (tryb nearest zamiast index)
  • Tooltipy kolumn sys schema (ponad 100 kolumn udokumentowanych)

Roadmapa — co pozostaje

Otwarte tickety (35)

Instalator Debian 13 (7 ticketów):

  • Przewidywalne hasła (#123)
  • Dane uwierzytelniające w tekście jawnym w /tmp/config.json (#117)
  • Prywatny klucz SSH w repozytorium (#114)
  • Ignorowana wersja MariaDB (#120)
  • Własność /var/www (#119)

Analiza binlogów:

  • Oś czasu Gantt wyrównana z wykresami (#106)
  • Analiza uruchamiana podwójnie (#122)
  • Nieatomowy cache zapisu dla logów MySQL (#121)

Jakość danych:

  • Normalizacja opóźnienia NULL → 0 (#113)
  • Stan SSL utracony w normalizacji MySQL 8 (#116)
  • Dashboard: SingleStore klasyfikowany jako MySQL (#130), ponowne użycie PID (#129), seconds_behind_source (#126)

Legacy:

  • Zmiana nazwy bazy danych z collation (#26)
  • Kodowanie LDAP (#40)
  • Nazwy tabel z myślnikami w Graphviz (#65)
  • SqlFormatter — przestarzałe strlen (#72)

Planowane ulepszenia

  • Agregacja szeregów czasowych: raw → 1min → 1hr → 1day z odchyleniem standardowym do wykrywania anomalii
  • Alerting: powiadomienia Telegram/email o opóźnieniu, niedostępności serwera, miejscu na dysku
  • System wtyczek: instalacja/deinstalacja z GitHub
  • REST API: udostępnianie metryk do integracji zewnętrznej

Linki

  • GitHub: github.com/PmaControl/PmaControl
  • Telegram: t.me/pmacontrol
  • Otwarte tickety: Issues

PmaControl jest narzędziem open-source do monitorowania MariaDB/MySQL. Wkład mile widziany.

Powrót do bloga X LinkedIn Facebook Email PDF
← Powrót do bloga

Opublikowano (0)

Nieprawidłowy adres e-mail.

Autor

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Platforma eksploatacji SQL GitHub Platforma eksploatacji SQL
Platforma eksploatacji SQL © 2014-2026 PmaControl — 68Koncept