Quick verdict
Choose pgBackRest if you want block-level incremental backups on every PostgreSQL version it supports, parallel backup and restore, delta restores, several repositories at once and object storage written natively by the main tool. Choose Barman if you prefer a dedicated backup server that pulls backups from a fleet of PostgreSQL or EDB Postgres servers, with a simple REDUNDANCY or RECOVERY WINDOW retention model and a company (EDB) maintaining the project. Both are free; the choice is about architecture and which features you need on your PostgreSQL versions.
pgBackRest is an open source backup and restore tool for PostgreSQL under the MIT licence, funded by sponsors (in November 2026 the site lists AWS, Supabase, pgEdge, Tiger Data, Percona, Eon, Xata, Dalibo and Data Egret). It can run on the database host alone or with a dedicated repository host over TLS or SSH, and the project states that PostgreSQL itself never needs remote access. It supports ten PostgreSQL versions: the five supported releases and the last five end-of-life ones. The current release is 2.60.0 (18 October 2026).
Barman (Backup and Recovery Manager) is a Python application distributed under the GNU GPL 3 and maintained by EnterpriseDB (EDB). It runs on a separate backup server and takes remote physical backups of one or more PostgreSQL servers using rsync over SSH or pg_basebackup, archives WAL, and keeps a catalogue for listing, keeping, deleting and recovering backups. Companion barman-cloud tools write backups and WAL to object storage. The current release is 3.20.1 (29 September 2026); 3.20.0 raised the minimum Python version to 3.12.
Physical, not logical. Both tools copy the cluster's data files and WAL, which is what makes point-in-time recovery possible. For logical exports of one database, see the pg_dump guide. Neither tool applies to managed services such as Amazon RDS, where you cannot reach the data directory; see RDS backups explained.
Side by side
| Aspect | pgBackRest | Barman |
|---|---|---|
| Licence and steward | MIT; community project funded by sponsors | GPLv3; maintained by EDB |
| Architecture | Command-line tool on the database host, optional dedicated repository host | Dedicated Barman server pulling from many PostgreSQL servers; barman-cloud tools run on the database host |
| Backup types | Full, differential and incremental | Full; incremental (no separate differential type) |
| Incremental method | File level, or block level with repo-block (needs repository bundling), on all supported versions | File level with rsync reuse_backup (hard links), or block level with PostgreSQL 17+ native incremental backup; types cannot be mixed |
| Point-in-time recovery | Yes, to a time, LSN or other recovery target | Yes, from base backups plus archived WAL |
| Parallelism | process-max for backup, restore and compression; asynchronous parallel WAL push and get | parallel_jobs for rsync copies; compression workers for zstd; parallel uploads in barman-cloud-wal-archive |
| Object storage | Native repo types: S3, Azure, GCS, SFTP, CIFS and POSIX; several repositories at once | barman-cloud tools for S3, Azure Blob and GCS; local-to-cloud method for S3; cloud disk snapshots |
| Retention | By count or age (days) of full backups, plus differential and WAL archive retention | REDUNDANCY or RECOVERY WINDOW policies enforced by barman cron; keep pins backups |
| Encryption | Client-side repository encryption, AES-256-CBC | GPG encryption (postgres method, tar format); S3 SSE-C for barman-cloud |
| Compression | gz (default), bz2, lz4, zst | gzip, lz4, zstd for streamed backups; several WAL compressors |
| Backup from standby | Yes (backup-standby y or prefer); primary supplies only non-replicated files | Yes, with primary_conninfo so Barman can force a WAL switch on the primary |
| Restore conveniences | Delta restore, resume of interrupted backups, checksum recheck on restore or verify | Local or remote recovery to a point in time; restore from cloud storage (3.19+) |
Key differences
Where the tool runs: repository host versus backup server
Barman is built around a central backup server. You install it on a dedicated Linux host, configure one section per PostgreSQL server, and Barman pulls base backups (rsync over SSH or pg_basebackup streaming) and receives WAL by archive_command or streaming replication. Commands such as barman backup, barman list-backups and barman check, and the recovery commands, work across the fleet from one place, and barman cron runs maintenance and retention.
pgBackRest can run entirely on the database host, writing to a local, mounted or object-storage repository, or with a separate repository host that connects over TLS or SSH. A stanza describes each cluster. You get the same central view with a repository host, but the simplest deployment is a single host pushing straight to S3, Azure or GCS, which many teams prefer in cloud VMs. Either way you schedule backups with cron or an orchestrator. A typical pgBackRest setup and backup:
# pgBackRest (shell): create the stanza, then take an incremental backup
pgbackrest --stanza=main stanza-create
pgbackrest --stanza=main --type=incr backup
pgbackrest --stanza=main info
# Barman (shell): check a server and take a backup from the Barman host
barman check pg1
barman backup pg1
barman list-backups pg1 Incremental backups and PostgreSQL versions
This is the difference most likely to decide the choice. pgBackRest has its own block incremental feature (repo-block, which requires repository bundling), so differential and incremental backups store only the changed parts of files on every PostgreSQL version it supports. It also keeps the classic full, differential and incremental chain.
Barman offers two incremental methods. With rsync, reuse_backup = link hard-links unchanged files from the previous backup, which saves space at file level. With the postgres method on PostgreSQL 17 or later, it uses PostgreSQL's native incremental backup (with summarize_wal enabled before the first full backup) for block-level incrementals. The two types cannot be mixed, and the local-to-cloud method does not support incrementals. On PostgreSQL 16 or older, Barman's incrementals are file level only.
Object storage and multiple copies
pgBackRest treats object storage as a normal repository type: repo-type can be s3, azure, gcs, sftp, cifs or posix, and you can define several repositories at once, for example a local repository with short retention and an S3 repository with long retention. Backups, WAL archiving and restores all use the same tool and the same encryption.
Barman keeps backups on the Barman server's disk by default. For object storage it provides the barman-cloud tools (barman-cloud-backup, barman-cloud-wal-archive and friends), which write to Amazon S3, Azure Blob Storage and Google Cloud Storage, plus a local-to-cloud backup method for S3 and cloud disk snapshot backups. Recent releases added restores from cloud storage (3.19) and zstd compression and S3 SSE-C for barman-cloud (3.20). The result works well, but cloud and server modes are separate paths with different feature sets: cloud streaming, for example, does not support backup compression or encryption.
Retention, verification and day-two operations
Barman's retention model is easy to explain: REDUNDANCY n keeps the last n full backups, RECOVERY WINDOW OF 30 DAYS keeps whatever is needed to recover to any point in the last 30 days, and keep pins a backup indefinitely. barman check is commonly used for monitoring, and backups fail to start if WAL is not being archived correctly.
pgBackRest sets retention by the number or age of full backups (repo-retention-full-type is count or time), with separate settings for differentials and WAL archive. It calculates a checksum for every file, rechecks them on restore or verify, validates PostgreSQL page checksums during backup, can resume an interrupted backup, and since 2.60.0 a restore stops on invalid page checksums by default. If you use repository encryption, make sure you run 2.59.3 or later, which fixed weakly generated encryption subkeys in a rare OpenSSL failure case.
Pricing and licensing
Both tools are free and have no paid edition. pgBackRest is MIT-licensed and sponsor-funded. Barman is GPLv3 and maintained by EDB, which sells PostgreSQL support and subscriptions separately; Barman itself has no licence fee.
Real costs are the same kind for both: repository or backup server storage (disk or object storage, including request and egress charges in the cloud), the hosts that run the tools, and staff time to configure, monitor and regularly test restores. Barman's design adds a dedicated backup server by default; pgBackRest can run without one when it writes straight to object storage.
Pricing checked on the vendors' official pages on 7 November 2026. Prices change; confirm before buying.
Where each one leads
pgBackRest strengths
- Block-level incrementals on every supported PostgreSQL version, not only 17+
- Native S3, Azure, GCS and SFTP repositories, with several repositories at once
- Parallel backup, restore and asynchronous WAL archiving
- Delta restore, backup resume and per-file checksums rechecked on restore or verify
- Permissive MIT licence
Barman strengths
- Central backup server and catalogue for a fleet of PostgreSQL servers
- Clear REDUNDANCY or RECOVERY WINDOW retention policies with keep
- Maintained by EDB, with support for EDB Postgres Advanced Server and Extended
- Native PostgreSQL 17 incremental backup support with the postgres method
- Cloud snapshot backups and barman-cloud tools for S3, Azure and GCS
Limitations
pgBackRest limitations
- No central server by default; fleet management needs a repository host or your own tooling
- Configuration files and command line only; no GUI
- Funding depends on sponsors rather than a single company
- Repository encryption users must be on 2.59.3 or later
Barman limitations
- Block-level incrementals need PostgreSQL 17 or later; older versions get file-level rsync incrementals
- Incremental types cannot be mixed, and local-to-cloud backups have no incrementals
- Cloud streaming mode does not support backup compression or encryption
- Needs a dedicated Linux host with Python 3.12 or later
When to choose each
Choose pgBackRest if
- You run PostgreSQL 16 or older and want block-level incrementals
- You want to write backups straight from the database host to S3, Azure or GCS
- You need fast parallel restores or delta restores of large clusters
- You want two repositories with different retention, such as local and off-site
Choose Barman if
- You want one backup server managing many PostgreSQL servers
- You prefer a recovery-window retention policy and a backup catalogue
- You run EDB Postgres Advanced Server or already have an EDB relationship
- You are on PostgreSQL 17 or later and want native incremental backups
When neither is right
- You want a single binary that streams PostgreSQL backups and WAL to object storage and can also cover other engines: see WAL-G.
- Your PostgreSQL runs on Amazon RDS or Aurora, where the service runs physical backups: see RDS backups explained and AWS Backup.
- You need one platform across PostgreSQL, SQL Server, Oracle and VMs: compare enterprise suites in Veeam vs Commvault.
- Your database is small and a nightly logical dump is enough: see the pg_dump guide.
Final recommendation
pgBackRest is the more feature-dense tool for the backup itself: block incrementals on any supported version, parallelism, delta restore and native object storage in one binary. Barman is the more server-centric tool: a central host, a catalogue and a retention model that is easy to reason about, maintained by EDB. If you run PostgreSQL 16 or older and care about backup size, or you write straight to object storage, pgBackRest is the more direct fit. If you run a fleet from one backup server, use EDB Postgres, or are already on PostgreSQL 17 or later, Barman is a strong fit. Whichever you pick, schedule regular test restores.
Frequently asked questions
Are pgBackRest and Barman both free?
Yes. pgBackRest is MIT-licensed and sponsor-funded; Barman is GPLv3 and maintained by EDB. Neither has a paid edition. EDB sells PostgreSQL support separately.
Which supports block-level incremental backups?
Both, with a difference. pgBackRest has its own block incremental feature (repo-block, with repository bundling) on all PostgreSQL versions it supports. Barman uses PostgreSQL's native incremental backup, which needs PostgreSQL 17 or later; on older versions it offers file-level incrementals with rsync.
Can both back up to Amazon S3?
Yes. pgBackRest writes S3, Azure, GCS and SFTP repositories directly. Barman uses its barman-cloud tools for S3, Azure Blob and GCS, plus a local-to-cloud backup method for S3.
Can I take backups from a standby?
Yes with both. pgBackRest has a backup-standby option, with the primary supplying only files not replicated to the standby. Barman can connect to a standby and needs primary_conninfo so it can force a WAL switch on the primary.
Do they work with Amazon RDS for PostgreSQL?
No. Both need file system access to the data directory and WAL, which managed services do not provide. Use the service's own backups instead.
Sources
- pgBackRest home page (features, sponsors, releases)
- pgBackRest configuration reference
- pgBackRest user guide
- pgBackRest release notes
- Barman home page
- Barman GitHub repository (GPLv3, EDB)
- Barman release notes
- Barman user guide: backups
- Barman user guide: configuration
- Barman user guide: retention policies
Checked November 2026.
How we research comparisons: our editorial method.