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: Yes

An 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).

Official site

Proxmox Backup Server (NimbusBackup)

Used at RDEMMariaDB: YesMySQL: Yes

Backup 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 site

mariadb-backup (mariabackup)

MariaDB: YesMySQL: No

Hot 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 site

Percona XtraBackup

MariaDB: NoMySQL: Yes

The 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 site

mariadb-dump / mysqldump

Used at RDEMMariaDB: YesMySQL: Yes

Logical 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 site

mydumper / myloader

MariaDB: YesMySQL: Yes

Parallel 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 site

Performance and diagnostics

Before touching my.cnf, measure. The method is detailed in MySQL performance tuning and MySQLTuner.

Slow query log

MariaDB: YesMySQL: Yes

Log 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 site

pt-query-digest

MariaDB: YesMySQL: Yes

Aggregates 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 site

MySQLTuner

MariaDB: YesMySQL: Yes

Perl 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 site

performance_schema / sys

MariaDB: YesMySQL: Yes

The 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 site

EXPLAIN / ANALYZE

MariaDB: YesMySQL: Yes

A 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 site

Online 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: Yes

Many 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 site

pt-online-schema-change

MariaDB: YesMySQL: Yes

Builds 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 site

gh-ost

MariaDB: YesMySQL: Yes

Same 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 site

Checking 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: Yes

Computes 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 site

Proxies 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: Yes

SQL 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 site

MariaDB MaxScale

MariaDB: YesMySQL: Partial

MariaDB 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 site

High 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: Yes

Replication 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 site

Réplica différé (MASTER_DELAY)

Used at RDEMMariaDB: YesMySQL: Yes

A 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 site

Galera Arbitrator (garbd)

MariaDB: YesMySQL: Partial

A 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 site

Monitoring

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: Yes

Infrastructure 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 site

Percona Monitoring and Management (PMM)

MariaDB: YesMySQL: Yes

MySQL / 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 site

mysqld_exporter + Prometheus

MariaDB: YesMySQL: Yes

Exports 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 site

Admin clients

The everyday tool. The choice matters less than how access is exposed.

mariadb / mysql (CLI)

Used at RDEMMariaDB: YesMySQL: Yes

The 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 site

DBeaver

MariaDB: YesMySQL: Yes

Multi-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 site

phpMyAdmin

MariaDB: YesMySQL: Yes

Web 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 site

Summary

Compatibility and licence for each tool. "Partial": works with restrictions or without official support.

ToolCategoryMariaDBMySQLLicenceAt RDEM
Snapshots ZFSBackup and restoreYesYesCDDL✓
Proxmox Backup Server (NimbusBackup)Backup and restoreYesYesAGPL-3.0✓
mariadb-backup (mariabackup)Backup and restoreYesNoGPL-2.0—
Percona XtraBackupBackup and restoreNoYesGPL-2.0—
mariadb-dump / mysqldumpBackup and restoreYesYesGPL-2.0✓
mydumper / myloaderBackup and restoreYesYesGPL-3.0—
Slow query logPerformance and diagnosticsYesYes——
pt-query-digestPerformance and diagnosticsYesYesGPL-2.0—
MySQLTunerPerformance and diagnosticsYesYesGPL-3.0—
performance_schema / sysPerformance and diagnosticsYesYes——
EXPLAIN / ANALYZEPerformance and diagnosticsYesYes——
ALTER TABLE en ligne (natif)Online schema changesYesYes——
pt-online-schema-changeOnline schema changesYesYesGPL-2.0—
gh-ostOnline schema changesYesYesMIT—
pt-table-checksum / pt-table-syncChecking replica consistencyYesYesGPL-2.0✓
ProxySQLProxies and routingYesYesGPL-3.0—
MariaDB MaxScaleProxies and routingYesPartialBSL / GPL → propriétaire—
Signal18 Replication ManagerHigh availability and failoverYesYesGPL-3.0✓
Réplica différé (MASTER_DELAY)High availability and failoverYesYes—✓
Galera Arbitrator (garbd)High availability and failoverYesPartialGPL-2.0—
CheckmkMonitoringYesYesOpen source + commercial✓
Percona Monitoring and Management (PMM)MonitoringYesYesOpen source—
mysqld_exporter + PrometheusMonitoringYesYesApache-2.0—
mariadb / mysql (CLI)Admin clientsYesYesGPL-2.0✓
DBeaverAdmin clientsYesYesApache-2.0 (Community)—
phpMyAdminAdmin clientsYesYesGPL-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