The best Postgres backup tools in 2026

Postgres backup tools fall into two families. Physical-backup engines (pgBackRest, Barman, WAL-G) copy the data files and the write-ahead log, which gives you point-in-time recovery but needs access to the server itself. Dump schedulers (pgBackWeb, Databasus, SimpleBackups) run pg_dump for you and work anywhere you can connect, including managed hosts. Which family you need mostly depends on where your database runs.

Your situationStart with
Your own servers, a large database, and you need point-in-time recoverypgBackRest. Barman and WAL-G if they fit your setup better.
Managed Postgres (RDS, Neon, Render, DigitalOcean) and you want your own copiespg_dump on a schedule, or Databasus or pgBackWeb for a web interface
You want every backup restore-tested without writing the check yourselfDatabasus (self-hosted), or BackupDrill if the database is on Supabase
You do not want to run any backup software at allSimpleBackups (hosted)
SupabaseSee the Supabase backup tools comparison

How we compared them

Five questions, answered from each tool’s own documentation and repository as of September 29, 2026: what kind of backup it makes, where it can store it, whether it proves the backup restores, how you run it, and what it costs. We also note whether it can back up a managed database, because that rules out half the list for a lot of teams. BackupDrill is our product; it is in the list with the same fields as everyone else, including what it does not do.

One distinction runs through the whole page. Checking a backup’s checksums proves the files were not damaged after they were written. Restoring the backup into a database and looking at what came back proves it contains what you needed. The first is common, the second is rare, and they catch different failures.

pgBackRest

The default choice for backing up Postgres servers you run yourself. Full, differential, and incremental physical backups, block-level incremental on top, and WAL archiving for point-in-time recovery.

Backup type
Physical: full, differential, incremental, block-level; WAL archive and PITR
Destinations
Local disk, S3 and compatible, Google Cloud Storage, Azure, SFTP, CIFS
Restore check
verify checks the checksums of backup and WAL files; no test restore
Runs as
Command-line tool, no scheduler of its own (run it from cron)
License
MIT. Latest release 2.59.2, September 27, 2026

It needs to read the data directory and to be called from archive_command on the database host. RDS, Supabase, Neon, and other managed hosts give you neither, so it is a tool for servers you control.

Barman

EDB's backup manager, run from a separate backup server. Physical backups through rsync or pg_basebackup, WAL archiving for point-in-time recovery, and incremental backups using the native pg_basebackup support in PostgreSQL 17.

Backup type
Physical only; its docs say it never uses pg_dump
Destinations
The Barman server's disk; S3 and compatible, Azure, or GCS via barman-cloud
Restore check
check-backup confirms the WAL a backup needs is archived; verify-backup runs pg_verifybackup. No test restore
Runs as
Command-line tool on a dedicated backup server
License
GPL-3.0. Latest release 3.20.0, August 27, 2026

Needs a superuser or replication connection, and SSH to the database host for some modes, which rules out most managed services.

WAL-G

A compact archiving tool that pushes compressed, optionally encrypted base backups and WAL straight to object storage.

Backup type
Physical: full and delta (delta off by default); WAL archive and PITR
Destinations
S3, GCS, Azure, Alibaba Cloud, Swift, SSH, local disk
Restore check
wal-verify checks the WAL history is complete; --verify checks page checksums during the backup. No test restore
Runs as
Command-line tool
License
Apache 2.0 (LZO support is GPL). Latest release 3.0.9, August 20, 2026

Runs on the database server, or remotely over a connection with replication privileges (without delta backups in that mode).

pgBackWeb

A small web interface in a Docker container that schedules pg_dump backups for several databases, stores them locally or in S3 buckets, and restores or downloads them from the browser. It is being renamed UFO Backup.

Backup type
Logical (pg_dump)
Destinations
Local disk and any number of S3 buckets
Restore check
None. Its health checks test that databases and buckets are reachable
Runs as
Self-hosted web app (Docker)
License
AGPL-3.0. Latest release 0.5.2, August 28, 2026

It runs pg_dump over an ordinary connection string, so it should work against managed hosts too; its docs do not list any.

Databasus

Formerly Postgresus: a self-hosted web app for scheduled backups, now covering physical backups and WAL streaming as well as pg_dump. It is the only open-source tool here that restore-tests its backups, through a separate agent you run.

Backup type
Logical; physical full and incremental on PostgreSQL 17+; WAL streaming for PITR
Destinations
Local, S3, R2, Azure, Google Drive, NAS, FTP, SFTP, Dropbox, rclone
Restore check
Real restore: a separate agent with Docker restores into a container and checks the exit code, size, schema and table counts, and per-table row counts
Runs as
Self-hosted web app (Docker or Helm)
License
Apache 2.0. Latest release 3.60.0, September 22, 2026

Its logical backups work against RDS, Cloud SQL, and Supabase according to its docs; on Supabase it backs up only the public schema by default. The restore agent runs on a machine you provide.

We compared it with our own service in detail in Databasus vs BackupDrill.

SimpleBackups

A hosted service that runs your database and file backups on its own workers and sends them to your storage or theirs. Nothing to install for managed databases.

Backup type
PostgreSQL: full pg_dump dumps. Point-in-time recovery is offered for MySQL only
Destinations
30+ providers including S3, GCS, and Azure, plus its own storage
Restore check
No test restore. Anomaly detection flags empty, undersized, or missing backups; restores are manual with commands it provides
Runs as
Hosted service
Price
Free for one backup job; $49, $99, or $299/month, priced by number of backup jobs

Works with RDS, DigitalOcean, Supabase, and Neon through its serverless workers.

For the Supabase side of it, see SimpleBackups vs BackupDrill.

BackupDrill (ours)

Our hosted service. It dumps the database, plus Storage files if you add their keys, into your own S3, R2, B2, or Wasabi bucket, then restores the latest snapshot into a throwaway Postgres and checks every table and row count against a checksummed manifest.

Backup type
Logical (pg_dump); no PITR
Destinations
Your own S3, Cloudflare R2, Backblaze B2, or Wasabi bucket
Restore check
Real restore: weekly on paid plans, once after the first backup on Free
Runs as
Hosted service; the engine is an MIT command-line tool you can run yourself
Price
Free for one project; $19, $49, or $99/month

Supports Supabase projects only today. If your Postgres is elsewhere, tell us where at the end of this page.

The baseline: pg_dump and cron

Every tool above that makes logical backups is, underneath, pg_dump on a schedule. Doing it yourself costs a script and a cron line, and you control exactly where the file goes.

Backup type
Logical, one database at a time
Destinations
Wherever your script copies the file
Restore check
Whatever you build
Runs as
cron, a systemd timer, or a CI schedule
License
PostgreSQL License, free

The PostgreSQL 18 docs themselves say pg_dump is generally not the right choice for regular backups of production databases, except in simple cases. Most application databases on managed hosts are that simple case.

A tested script with a checked upload and a restore check is in the pg_dump to S3 guide.

Side by side

ToolBackup typePITRRestore checkRuns asLicense / price
pg_dump + cronLogicalNoNoCommand lineFree
pgBackRestPhysical, incrementalYesChecksums onlySelf-hosted CLIMIT, free
BarmanPhysical, incrementalYesChecksums, WAL completenessSelf-hosted CLIGPL-3.0, free
WAL-GPhysical, deltaYesWAL continuity, page checksumsSelf-hosted CLIApache 2.0, free
pgBackWebLogicalNoNoSelf-hosted web UIAGPL-3.0, free
DatabasusLogical; physical on PG 17+YesReal restoreSelf-hosted web UIApache 2.0, free
SimpleBackupsLogicalNo (MySQL only)Size and presence checksHosted$0 to $299/month
BackupDrillLogicalNoReal restoreHosted + MIT CLI$0 to $99/month; Supabase only

Which ones actually test restores

Two of the eight restore a backup into a real database on a schedule: Databasus, self-hosted, with an agent you run next to Docker; and BackupDrill, hosted, for Supabase. The three physical engines verify checksums and WAL completeness, which is genuinely useful, since a missing WAL segment silently breaks point-in-time recovery, but none of them starts a server from the backup. pgBackWeb has no check. SimpleBackups looks for backups that are empty, suspiciously small, or missing, and leaves restoring to you.

Whatever you pick, a test restore is something you can add yourself. For dumps, the restore-check script restores the newest file into a throwaway container and checks every table came back. For physical backups, restore to a spare server now and then and point a test suite at it. The PostgreSQL backup overview explains which kind of backup each tool makes and when you need it.

FAQ

What is the best Postgres backup tool?

For servers you run yourself, pgBackRest: physical backups, incremental backups, and point-in-time recovery, and it is MIT licensed. For managed Postgres, where physical tools cannot reach the server, a scheduled pg_dump into your own storage, run by a script or by Databasus, pgBackWeb, or SimpleBackups. If you want restores tested for you, Databasus does it self-hosted.

Which Postgres backup tools test that backups restore?

Of the tools compared here, Databasus and BackupDrill restore backups into a real database and check what came back. pgBackRest, Barman, and WAL-G verify checksums and WAL completeness, which catches damaged files but not a backup that restores wrong. pgBackWeb and SimpleBackups do not restore-test; SimpleBackups flags suspicious sizes and missing files.

Can pgBackRest back up Amazon RDS?

No. pgBackRest reads the database's data directory and is called from archive_command on the database host. RDS does not give you either, so use RDS's own snapshots and point-in-time restore, plus pg_dump copies in your own bucket for anything you need to take out of AWS.

Is pg_dump enough for backups?

For many application databases, yes: a daily custom-format dump, copied off the host and restore-tested, covers deleted data, a lost project, and a move to another host. It is not enough when you cannot afford to lose up to a day of writes, or when the database is so large that restoring a dump takes too long. Those cases call for physical backups with WAL archiving.

Tool details change quickly; version numbers and prices here were read from each project’s own site and repository on the date below. Supabase users will find the platform-specific tools, including Supabackup, ReviveDB, and BackProve, in the Supabase backup tools comparison.

Backups that get restore-tested for you

BackupDrill runs the dump into your own S3, R2, B2, or Wasabi bucket, then restores it in a throwaway sandbox and checks every table came back. Today it works with Supabase projects. The Free plan covers one project with weekly backups and a restore drill after the first one, no credit card.

Start free with Supabase

Running Postgres somewhere else? Tell us where. We only open a new host once enough people ask for it, and we’ll email you once when yours is ready.

Where does your Postgres run?

Sources

Facts and prices last verified 2026-09-29 against the sources above. Written by the team behind BackupDrill.