Install & design
LTS version choice, storage-engine and charset standards, parameter standards, package repositories.
MariaDB
Forked from MySQL and now evolving on its own path, MariaDB has its own strengths. We run Galera Cluster synchronous replication, MaxScale routing, mariadb-backup and LTS version management the way the engine expects.
Architecture
Galera certifies each write-set at commit time (virtually synchronous replication), producing a multi-primary cluster in which every node holds the same data.
If a node fails, service continues as long as the remaining nodes keep quorum. Putting MaxScale (or ProxySQL) in front to send writes to one node and spread reads reduces rollbacks caused by write conflicts.
Remote DR is usually built with asynchronous replication between Galera clusters.
Scope
LTS version choice, storage-engine and charset standards, parameter standards, package repositories.
Galera Cluster, GTID async/semi-sync replication, MaxScale failure detection and failover.
mariadb-backup full/incremental, mariadb-dump logical backups, binlog point-in-time recovery.
InnoDB buffer pool and logs, thread pool, optimiser settings, slow queries and indexes.
wsrep_* status (flow control, queues), replication lag, PMM and Grafana dashboards.
LTS-to-LTS upgrades (e.g. 10.6 → 10.11/11.4/11.8), mariadb-upgrade, rolling upgrades.
Accounts and roles, TLS, server_audit plugin logging, data-at-rest encryption.
Review compatibility gaps (GTID format, system tables, auth plugins) before switching.
Replication
| Option | What it is | Good for | Watch out for |
|---|---|---|---|
| Galera Cluster | Certification-based virtually synchronous, multi-primary | Minimal RPO, node-failure tolerance | Not a write-scaling tool; sensitive to WAN latency |
| Async / semi-sync replication | MariaDB-specific GTID (domain-server-seq) | Read scaling, DR | GTID format differs from MySQL — take care in mixed setups |
| MaxScale | readwritesplit routing, monitoring and automatic failover | Proxy in front of Galera or replication | Check BSL licence terms before use |
| ProxySQL | Rule-based query routing | When an open-source proxy is preferred | Needs Galera node-state health checks |
Backup & PITR
# Backup
mariadb-backup --backup --target-dir=/backup/full_20261020 \
--user=bkuser --password='***'
# Prepare, then restore
mariadb-backup --prepare --target-dir=/backup/full_20261020
systemctl stop mariadb # datadir must be empty
mariadb-backup --copy-back --target-dir=/backup/full_20261020
chown -R mysql:mysql /var/lib/mysql && systemctl start mariadbSHOW GLOBAL STATUS WHERE Variable_name IN (
'wsrep_cluster_size', -- number of nodes
'wsrep_cluster_status', -- should be Primary
'wsrep_local_state_comment', -- should be Synced
'wsrep_flow_control_paused', -- share of time paused by flow control
'wsrep_local_recv_queue_avg' -- average receive queue
);mariabackup. We confirm commands against the documentation for your version.Tuning
Lifecycle
FAQ
No. Every node applies every write, so Galera is about availability and data protection, not write scaling. Write scaling needs a different design such as sharding.
They were highly compatible early on, but have diverged: GTID format, system tables, JSON handling and authentication now differ. You need a dump/replication transition plan and compatibility testing.
With only two nodes, losing one means losing quorum. We recommend adding Galera Arbitrator (garbd) as a third voter.
ProxySQL, or HAProxy with health-check scripts. MaxScale uses the BSL licence, so check its terms first.
Tell us your clouds, database versions, topology and concerns, and we will propose an assessment scope and approach.