DBA toolbox
MariaDB and MySQL DBA tools: the ones we use and the ones to know
Backup, performance, schema changes, replication, monitoring: the tools we use every day, and the ones a MariaDB or MySQL DBA should know. For each, when to consider it, its limits, its MariaDB and MySQL compatibility and its licence.
Used at RDEMmarks the tools in our day-to-day operations. The others are presented for what they bring, without claiming we use them: we follow them, and some may join our toolbox.
How we pick a tool
- Open source and maintained: we check project activity and the licence before installing it in production.
- Compatible with the actual engine: MariaDB and MySQL have diverged, a MySQL tool doesn't necessarily work on MariaDB.
- Tested before production: a failover or backup tool that has never been exercised is no guarantee.
- As few tools as possible: every extra tool is one more piece of software to maintain and upgrade.
Backup and restore
What matters isn't the backup tool, it's restore time. We cover that choice in mysqldump vs mariabackup and mariadb-dump vs mydumper.
Snapshots ZFS
Used at RDEMMariaDB: YesMySQL: YesAn atomic snapshot of a dataset, taken in a fraction of a second. It is consistent like after a power cut: on restart, InnoDB replays its redo log and returns to a clean state. Roll back or clone a database in seconds.
At RDEM: Regular snapshots of the datasets holding the databases, for fast rollback or to clone a test database.
Limit: Consistency requires the data files and the InnoDB redo log to sit on the same dataset, or to be snapshotted together (zfs snapshot -r is atomic across child datasets). A snapshot stays on the same pool and the same machine: it only becomes a backup once copied elsewhere (zfs send).
Proxmox Backup Server (NimbusBackup)
Used at RDEMMariaDB: YesMySQL: YesBackup of whole virtual machines, deduplicated and encrypted, with a client account that has no delete rights by default, and an optional air-gapped copy. We run it as a service with NimbusBackup.
At RDEM: Backups of the VMs hosting the databases, off the production site. The mechanism is measured in our Galera-to-PBS case study (in French). To send dumps and binlogs to PBS as well, see our tested MariaDB → PBS method.
Limit: Granularity is the VM: restoring a single table means bringing up the VM separately. For a consistent copy, freeze the filesystem (fsfreeze via qemu-guest-agent) or shut the VM down cleanly, as in the case study.
Official sitemariadb-backup (mariabackup)
MariaDB: YesMySQL: NoHot physical backup of InnoDB files, with incrementals. Ships with MariaDB.
When to consider it: Production backups of any MariaDB database beyond a few GB, and Galera node SST.
Limit: Version-bound: back up and prepare with a mariadb-backup matching the server version; to move to a new major version, restore first, then follow the upgrade procedure.
Official sitePercona XtraBackup
MariaDB: NoMySQL: YesThe mariabackup equivalent for MySQL and Percona Server (mariabackup is a fork of it).
When to consider it: Hot physical backups of MySQL and Percona Server.
Limit: Doesn't support MariaDB 10.3 and later: on MariaDB, use mariabackup.
Official sitemariadb-dump / mysqldump
Used at RDEMMariaDB: YesMySQL: YesLogical SQL dump, handy for moving between versions (provided the SQL and the restore client are compatible). See our mysqldump guide.
At RDEM: A daily dump of every database, driven by Replication Manager: the portable safety net, restorable anywhere, alongside ZFS snapshots and VM backups. Also for one-off exports and schema-only dumps.
Limit: The classic SQL dump and its single-client import are sequential, which quickly hurts on large databases. Since MariaDB 11.4, --parallel with --tab (and --dir in 11.5) allows parallel export.
Official sitemydumper / myloader
MariaDB: YesMySQL: YesParallel logical dump and restore, one table or chunk per thread.
When to consider it: Migrations and major upgrades where physical backups can't be used, AWS RDS exits.
Limit: Separate package whose version varies across distros: compare it with the project's releases. Restores normally go through myloader, which handles ordering and dependencies.
Official sitePerformance and diagnostics
Before touching my.cnf, measure. The method is detailed in MySQL performance tuning and MySQLTuner.
Slow query log
MariaDB: YesMySQL: YesLog of queries exceeding a duration threshold, built into the server.
When to consider it: Worth enabling on every production database, with a threshold suited to the application.
Limit: Too low a threshold on a busy database grows the file fast: plan log rotation.
Official sitept-query-digest
MariaDB: YesMySQL: YesAggregates the slow query log by query fingerprint and ranks by cumulative time (Percona Toolkit).
When to consider it: First step of a performance analysis: it ranks queries by total time consumed.
Limit: It analyses what was logged: a high slow log threshold hides small, very frequent queries.
Official siteMySQLTuner
MariaDB: YesMySQL: YesPerl script that reads server variables and counters and suggests configuration changes.
When to consider it: A quick overview at the start of a diagnosis, to spot obviously unsuitable settings.
Limit: Its recommendations are heuristics: run it after several days of uptime, and interpret them rather than applying them wholesale.
Official siteperformance_schema / sys
MariaDB: YesMySQL: YesThe server's internal instrumentation (waits, locks, statements); the sys schema makes it readable.
When to consider it: Fine-grained diagnosis of waits and locks when the slow log isn't enough.
Limit: Off by default on MariaDB (set performance_schema=ON at startup); sys schema included since MariaDB 10.6.
Official siteEXPLAIN / ANALYZE
MariaDB: YesMySQL: YesA query's execution plan. ANALYZE FORMAT=JSON (MariaDB) and EXPLAIN ANALYZE (MySQL ≥ 8.0.18) run it and report actual figures.
When to consider it: On every query surfaced by pt-query-digest, before suggesting an index.
Limit: ANALYZE actually runs the query: careful with UPDATE and DELETE, and with heavy queries in production.
Official siteOnline schema changes
An ALTER TABLE on a large table can block writes or send replica lag through the roof. On Galera it blocks the whole cluster by default: see Galera vs replication.
ALTER TABLE en ligne (natif)
MariaDB: YesMySQL: YesMany changes are instant or online (ALGORITHM=INSTANT / INPLACE, LOCK=NONE).
When to consider it: Always the first option: state ALGORITHM and LOCK so the server refuses an operation heavier than planned, and bound the metadata lock wait (WAIT / NOWAIT on MariaDB).
Limit: Not every change is online, and replication replays the ALTER in one go on replicas.
Official sitept-online-schema-change
MariaDB: YesMySQL: YesBuilds a modified copy of the table, keeps it in sync with triggers, then swaps the two tables.
When to consider it: Large tables where a native ALTER would block, on MariaDB and MySQL alike.
Limit: Triggers add write load; foreign keys and Galera require care.
Official sitegh-ost
MariaDB: YesMySQL: YesSame idea, but keeps the copy in sync by reading the binlog instead of using triggers.
When to consider it: On MySQL, when pt-osc's trigger overhead isn't acceptable.
Limit: MariaDB (and its GTID) is only supported since 1.1.11 (August 2026): recent support, test before use. Triggers carried over with --include-triggers since 1.1.8. Still no foreign keys; Galera compatibility not established.
Official siteChecking replica consistency
A replica can drift without any visible error: an accidental direct write, a replication filter, a botched failover. Without consistency checks, it may only surface after a failover.
pt-table-checksum / pt-table-sync
Used at RDEMMariaDB: YesMySQL: YesComputes chunked checksums on the primary, lets them replicate and compares; pt-table-sync fixes the drift.
At RDEM: pt-table-checksum as a regular consistency check between primary and replicas, and before a planned failover or migration. pt-table-sync only case by case, after analysing the drift.
Limit: Relies on replicating its own queries in STATEMENT format: beware of chained replicas and filters. pt-table-sync writes on the primary: use it knowingly.
Official siteProxies and routing
The proxy decides where each query goes: single writer, reads on replicas, removing a failed node. Detailed comparison: ProxySQL vs MaxScale.
ProxySQL
MariaDB: YesMySQL: YesSQL proxy with connection pooling, rule-based read/write split, query caching and rewriting.
When to consider it: In front of replicated and Galera topologies, to route writes to a single node.
Limit: Rich but dense configuration (rules, hostgroups): it must be versioned and documented.
Official siteMariaDB MaxScale
MariaDB: YesMySQL: PartialMariaDB plc's proxy: read/write routing, server monitoring, automatic failover.
When to consider it: Environments already under a MariaDB Enterprise subscription.
Limit: Up to 24.x, BSL licence: free use limited to two backend servers, then conversion to GPL on each version's own change date (already done up to 23.08). Since 25.01, proprietary licence, Enterprise subscription required in production.
Official siteHigh availability and failover
Asynchronous, semi-synchronous or Galera: the model comes before the tool. See Galera vs replication.
Signal18 Replication Manager
Used at RDEMMariaDB: YesMySQL: YesReplication monitoring, automatic failover (with optional external arbitration between several Replication Manager instances), backups, node rejoin. See our dedicated page.
At RDEM: On every primary / replica topology we operate (RDEM is a Signal18 partner).
Limit: Like any failover tool, it has to be tested for real: a failover never rehearsed is no guarantee.
Official siteRéplica différé (MASTER_DELAY)
Used at RDEMMariaDB: YesMySQL: YesA native replication feature: the replica applies events with a fixed delay, for instance CHANGE MASTER TO MASTER_DELAY=172800 for 48 hours (MariaDB 10.2.3 and later).
At RDEM: A replica running about two days behind receives the binlogs continuously. After a human error (DROP, UPDATE without WHERE), we stop it before the faulty event and replay up to the transaction just before.
Limit: It protects against logical errors, not against a failure: never promote it as primary without letting it catch up. The error also has to be spotted before the delay runs out.
Official siteGalera Arbitrator (garbd)
MariaDB: YesMySQL: PartialA data-less Galera cluster member that votes for quorum.
When to consider it: When only two data nodes are available: garbd on a third site prevents split-brain.
Limit: It receives all replication traffic: place it on a site with a good network link.
Official siteMonitoring
Checking that a database answers isn't enough: you need to see replication lag, Galera state, connections, slow queries and disk space before they turn into an incident.
Checkmk
Used at RDEMMariaDB: YesMySQL: YesInfrastructure monitoring with MySQL / MariaDB checks: connections, replication, wsrep state.
At RDEM: It's the tool we use, for instance on our 3-node Galera cluster.
Limit: Geared towards alerts and state; for detailed query analysis, pair it with the slow log.
Official sitePercona Monitoring and Management (PMM)
MariaDB: YesMySQL: YesMySQL / MariaDB dashboards and query analysis (Query Analytics), built on Grafana.
When to consider it: Useful when a team wants detailed per-query graphs without building its own stack.
Limit: One more PMM server to host, maintain and upgrade.
Official sitemysqld_exporter + Prometheus
MariaDB: YesMySQL: YesExports server metrics to Prometheus, visualised in Grafana.
When to consider it: When a Prometheus stack already exists: plug into it rather than adding another tool.
Limit: Metrics aren't alerts: useful thresholds (lag, wsrep, connections) still have to be defined.
Official siteAdmin clients
The everyday tool. The choice matters less than how access is exposed.
mariadb / mysql (CLI)
Used at RDEMMariaDB: YesMySQL: YesThe command-line client shipped with the server.
At RDEM: All routine operations and scripting.
Limit: Use the client from the same family as the server: the MySQL 8 client and a MariaDB server don't always get along.
Official siteDBeaver
MariaDB: YesMySQL: YesMulti-database graphical client: browsing, queries, export, diagrams.
When to consider it: For development teams who prefer a graphical interface.
Limit: Connect through an SSH tunnel or a VPN, never to a 3306 port exposed to the Internet.
Official sitephpMyAdmin
MariaDB: YesMySQL: YesWeb administration interface, very common at hosting providers.
When to consider it: Occasional troubleshooting when it's the only access available.
Limit: A publicly exposed web admin interface is a permanent target: restrict access (VPN, IP allowlist, strong authentication) and keep it up to date.
Official siteSummary
Compatibility and licence for each tool. "Partial": works with restrictions or without official support.
| Tool | Category | MariaDB | MySQL | Licence | At RDEM |
|---|---|---|---|---|---|
| Snapshots ZFS | Backup and restore | Yes | Yes | CDDL | ✓ |
| Proxmox Backup Server (NimbusBackup) | Backup and restore | Yes | Yes | AGPL-3.0 | ✓ |
| mariadb-backup (mariabackup) | Backup and restore | Yes | No | GPL-2.0 | — |
| Percona XtraBackup | Backup and restore | No | Yes | GPL-2.0 | — |
| mariadb-dump / mysqldump | Backup and restore | Yes | Yes | GPL-2.0 | ✓ |
| mydumper / myloader | Backup and restore | Yes | Yes | GPL-3.0 | — |
| Slow query log | Performance and diagnostics | Yes | Yes | — | — |
| pt-query-digest | Performance and diagnostics | Yes | Yes | GPL-2.0 | — |
| MySQLTuner | Performance and diagnostics | Yes | Yes | GPL-3.0 | — |
| performance_schema / sys | Performance and diagnostics | Yes | Yes | — | — |
| EXPLAIN / ANALYZE | Performance and diagnostics | Yes | Yes | — | — |
| ALTER TABLE en ligne (natif) | Online schema changes | Yes | Yes | — | — |
| pt-online-schema-change | Online schema changes | Yes | Yes | GPL-2.0 | — |
| gh-ost | Online schema changes | Yes | Yes | MIT | — |
| pt-table-checksum / pt-table-sync | Checking replica consistency | Yes | Yes | GPL-2.0 | ✓ |
| ProxySQL | Proxies and routing | Yes | Yes | GPL-3.0 | — |
| MariaDB MaxScale | Proxies and routing | Yes | Partial | BSL / GPL → propriétaire | — |
| Signal18 Replication Manager | High availability and failover | Yes | Yes | GPL-3.0 | ✓ |
| Réplica différé (MASTER_DELAY) | High availability and failover | Yes | Yes | — | ✓ |
| Galera Arbitrator (garbd) | High availability and failover | Yes | Partial | GPL-2.0 | — |
| Checkmk | Monitoring | Yes | Yes | Open source + commercial | ✓ |
| Percona Monitoring and Management (PMM) | Monitoring | Yes | Yes | Open source | — |
| mysqld_exporter + Prometheus | Monitoring | Yes | Yes | Apache-2.0 | — |
| mariadb / mysql (CLI) | Admin clients | Yes | Yes | GPL-2.0 | ✓ |
| DBeaver | Admin clients | Yes | Yes | Apache-2.0 (Community) | — |
| phpMyAdmin | Admin clients | Yes | Yes | GPL-2.0 | — |
Frequently asked questions
Which tools do you use at RDEM?
For backups: ZFS snapshots, VM backups to Proxmox Backup Server (NimbusBackup) and a daily mariadb-dump / mysqldump driven by Replication Manager. A replica delayed by about 48 hours receives the binlogs to recover from human error. For operations: Signal18 Replication Manager, pt-table-checksum for replica consistency, Checkmk for monitoring and the command-line client. The other tools on this page are presented as references worth knowing.
Can Percona XtraBackup be used with MariaDB?
Not with current versions: XtraBackup doesn't support MariaDB 10.3 and later. The equivalent is mariadb-backup (mariabackup), shipped with MariaDB and derived from XtraBackup.
Is MaxScale free?
Up to 24.x, MaxScale is under the BSL: free use limited to two backend servers, then conversion to GPL on each version's own change date (already the case up to 23.08, 24.02 follows in April 2027). Since 25.01, MaxScale is under a proprietary licence and requires a MariaDB Enterprise subscription in production. ProxySQL, under the GPL, is the open source alternative.
Is MySQLTuner enough to optimise a database?
No. It gives an overview of the configuration, but gains often come from queries and indexes, depending on the bottleneck observed. Pair it with the slow query log, pt-query-digest and execution plan analysis.
Does gh-ost work on MariaDB?
Yes, since version 1.1.11 (August 2026), which adds MariaDB and MariaDB GTID support. Support is recent: test it on a copy before production. Galera compatibility is not established. On MariaDB, native online ALTER remains the first option.
Good tools don't replace operations
Monitoring, tested backups, rehearsed failover: RDEM Remote DBA relies on the tools marked "Used at RDEM", and the audit checks what's already in place on your side.
Start your managed MariaDB project
Let's discuss your database needs. Our DBA team advises you on the optimal architecture for your use case.
RDEM Systems SAS — SIREN 820 338 671 — 5 B rue des Noyers, 95300 Pontoise