MariaDB Backup Compression
Database dumps are text-heavy and compress extremely well. The best practice is to stream the dump directly into a compressor so you avoid writing an uncompressed intermediate file.
Quick Summary
- Stream dump to compressed file:
mariadb-dump | zstd -o dump.sql.zst. - Verify with
zstd -t/gzip -t. - Restore by streaming decompression into
mysql.
Choose a compression tool
Common choices:
gzip: widely available, good compatibility.zstd: usually faster, good compression.
Streamed dump + compression
mariadb-dump-to-gzip.sh
mariadb-dump --single-transaction --quick wordpress \
| gzip -9 > "/backups/wp-db-$(date +%F).sql.gz"
mariadb-dump-to-zstd.sh
mariadb-dump --single-transaction --quick wordpress \
| zstd -3 -T0 -o "/backups/wp-db-$(date +%F).sql.zst"
If mariadb-dump is not present on your system, use mysqldump.
fallback-to-mysqldump.sh
mysqldump --single-transaction --quick wordpress \
| zstd -3 -T0 -o "/backups/wp-db-$(date +%F).sql.zst"
Verification
verify-compressed-db-dump.sh
gzip -t "/backups/wp-db-$(date +%F).sql.gz" 2>/dev/null || true
zstd -t "/backups/wp-db-$(date +%F).sql.zst" 2>/dev/null || true
ls -lh /backups/wp-db-*.sql.* | tail -n 10
Restore
restore-db-from-gzip.sh
gunzip -c /backups/wp-db-2026-03-01.sql.gz | mysql wordpress_restore
restore-db-from-zstd.sh
zstd -dc /backups/wp-db-2026-03-01.sql.zst | mysql wordpress_restore
warning
Importing a dump overwrites data in the target database. Restore into a staging database first.
Next steps
- Automation patterns:
opt/docker-data/apps/docusaurus/site/docs/server/linux-server/10-backup-disaster-recovery/automating-db-dump-daily.mdx.