Guide

Logical vs physical backups on managed databases

pgBackRest and WAL-G are the gold standard for Postgres backups — and you usually can't run either on a managed cluster. Here's the difference, why managed databases push you toward logical dumps, and what that trade-off actually costs you.

For anyone evaluating backup strategy on DigitalOcean, Aiven, Supabase, RDS or other managed Postgres/MySQL.

The two kinds of backup

Physical backups copy the database's files on disk — the actual data blocks and the write-ahead log (WAL). Tools like pgBackRest, WAL-G and Barman do this, usually with continuous WAL archiving for point-in-time recovery. They are fast, incremental, and restore the entire cluster byte-for-byte.

Logical backups export the database's contents — the SQL to recreate schemas, tables and rows. pg_dump / pg_dumpall for Postgres, mysqldump for MySQL. The output is a portable file, not a copy of the storage.

 Physical (pgBackRest, WAL-G)Logical (pg_dump)
GranularityWhole clusterPer database, per table
Point-in-time recoveryYes (WAL replay)To the dump's timestamp
Portable across versions/providersNo (same major version, same layout)Yes
Restore speed on huge dataFast (block copy)Slower (replays SQL, rebuilds indexes)
Access neededFilesystem + WAL + superuserConnect + SELECT
Runs on managed databasesAlmost neverYes

Why physical tools can't run on managed databases

Physical backup tools need things a managed provider deliberately doesn't give you:

The provider runs its own physical backups internally — that's what powers their point-in-time restore. But you can't drive those tools yourself, and the provider's restore is cluster-only and non-downloadable. So for a backup you own and can move, logical is the realistic option.

What logical backups cost you — and how to manage it

Logical dumps have real trade-offs; none is fatal for most managed workloads:

In exchange you get the two things physical backups can't offer on managed infra: per-database granularity and portability. You can restore one tenant without touching the rest, and load the dump anywhere.

dbferry does logical, per database, done right

dbferry takes a consistent logical dump of each database on your managed cluster, compresses and encrypts it client-side, and streams it into your own bucket on a schedule — hourly or nightly, with GFS retention. All the operational parts (fan-out, retention, alerts, dead-man's switch) handled, none of the physical-access requirements you can't meet.