Barman release notes
© Copyright EnterpriseDB UK Limited 2025 - All rights reserved.
3.19.0 (2026-05-20)
Notable changes
-
Add support for restoring backups from cloud storage
Barman can now restore backups taken with
backup_method = local-to-cloud
orbackup_method = postgreswhen stored in cloud object storage.The standard
barman restorecommand can be used to restore such backups.For WAL restore, a new
barman cloud-wal-restorecommand was introduced to fetch
WAL files directly from cloud storage during recovery. This command can be
used as therestore_commandin PostgreSQL and supports parallel
fetching for improved performance.Also, when a server has
wals_directoryconfigured to use cloud storage,
get-walis now always required for restore operations. If--no-get-wal
is specified orget-walis absent fromrecovery_options, Barman will
automatically enableget-waland issue a warning so the restore can
proceed without interruption.This completes the cloud backup lifecycle, enabling seamless backup and recovery
workflows entirely in the cloud.References: BAR-929.
-
Add new barman export-backup command for exporting backups to tarball
Introduced a new
barman export-backupcommand that exports a backup to a
tarball format. The command takes a server name, backup ID, and destination
directory as arguments, and creates a tarball containing the backup data.
This provides an easy way to share or archive backups.References: BAR-1180.
-
Add the
barman import-backupcommand for importing backups from tarballIntroduced a new
barman import-backupcommand that imports a backup from a
tarball format. The command takes a server name and tarball path as arguments,
and provides a way to register previously exported backups back into a Barman
catalog.References: BAR-1223.
Minor changes
-
Support alternative GCP universes via GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable
Barman now supports alternative GCP universes (e.g. S3NS/T-Systems) by
reading theGOOGLE_CLOUD_UNIVERSE_DOMAINenvironment variable. When set,
the value is passed asclient_optionsto the GCS storage client, allowing
barman-cloud-*commands to operate against non-standard GCP endpoints.
This feature was contributed by community member @mgarstecki.References: BAR-1017.
-
Add support for parallel WAL restore in
barman-cloud-wal-restoreSupport for parallelism has been added to the
barman-cloud-wal-restore
command, allowing users to specify a number of WALs to be downloaded in parallel
during the recovery of WALs. This enhancement improves the overall performance of WAL
restoration by prefetching multiple WAL files concurrently. Check the documentation
ofbarman-cloud-wal-restorefor more details.References: BAR-1253.
-
Add aws_check_object_lock config option to check S3 object lock before deletion
Introduced a new
aws_check_object_lockconfiguration option. When enabled,
Barman checks for S3 Object Lock before attempting to delete base backup files
from S3 storage. If an object is locked, the deletion is aborted. This aligns
Barman's behavior withbarman-cloud-deletefor locked objects. Only applies
to S3 storage; a warning is logged if this option is enabled with a non-S3
cloud provider.References: BAR-1113.
-
Make in-progress cloud backups visible in the backup catalog
In-progress cloud backups are now immediately visible in
barman-cloud-backup-listwithSTARTEDin the archival status column
and an empty end time. Previously, a backup only became visible once it
completed successfully.barman-cloud-backup-delete,
barman-cloud-restore, and thelast/latest/first/oldest
shortcuts all treat in-progress backups safely by excluding them from
redundancy counts, auto-restore selection, and shortcut resolution
respectively.References: BAR-1235.
-
Removed setuptools as a runtime dependency
Setuptools is no longer required as a runtime dependency for Barman. Setuptools
was previously included to provide the deprecated distutils module for Python 3.12+
compatibility, but it has been replaced with another implementation. Setuptools
remains available during build time for packaging purposes.References: BAR-1170.
-
Add --partial-wal flag to barman restore for opt-in .partial WAL file copying
A new
--partial-walflag has been added tobarman restore --no-get-wal. When set, Barman includes.partialWAL files in
the recovery, stripping the.partialsuffix so that PostgreSQL can
find them during replay. Two sources are supported:- The streaming WALs directory: the in-progress segment being written
bypg_receivewalat the time of the restore. Including it reduces
RPO by making any transactions written since the last completed WAL
segment available during recovery. - The WAL archive (
wals/): segments archived with the.partial
suffix, e.g. when a standby is promoted and PostgreSQL calls
archive_commandwith an in-progress segment. Compressed and
encrypted files are handled transparently.
The flag has no effect when
--get-walis used, as.partial
files are already handled transparently in that case.References: BAR-695.
- The streaming WALs directory: the in-progress segment being written
-
Add parallel WAL archiving support to
barman cloud-wal-archivebarman cloud-wal-archivenow supports a--parallelflag (and the
correspondingcloud_wal_archive_parallelconfiguration option) that enables
opportunistic prefetching of additional WAL files during archival. When
--parallel Nis set (N > 1), up to N - 1 extra WAL files that are ready in
pg_wal/archive_statusare identified and uploaded concurrently in background
worker processes after the primary WAL has been successfully archived. This can
significantly reduce WAL archival backlog during periods of high WAL generation.
If a WAL file was already uploaded by a previous invocation, subsequent calls to
archive_commandfor that WAL will detect it and exit immediately with 0,
avoiding redundant uploads.References: BAR-1101.
Bugfixes
-
Fix backup metadata not being updated in the cloud storage
NOTE: This fix is for the cloud integration of Barman servers i.e. those configured
withbackup_method = local-to-cloudorbackup_method = postgreswhich uses
a cloud storage as backup destination. This is not an issue in thebarman-cloud-*
scripts (e.g. barman-cloud-backup).Backup metadata (backup.info files) was not being updated in the cloud storage, which
led, for example, to the status of the backup in the cloud being outdated compared
to the local one. This can be a problem during the restore phase, where the metadata
from the cloud might be the primary source of information. This issue is now fixed.References: BAR-1227.
-
Fix
barman restore --no-get-walcopying unusable .partial WAL filesWhen running
barman restore --no-get-wal,.partialWAL files
present in the WAL archive were copied to the recovery destination.
However, therestore_commandgenerated by Barman usescpfrom
thebarman_waldirectory, which does not account for.partial
suffixes — so these files were never used by PostgreSQL during
recovery. Barman now skips.partialfiles by default. To
explicitly include them (with the suffix stripped so PostgreSQL can
find them), use the new--partial-walflag.References: BAR-1265.
-
Fix
--no-get-walrestore not copying WALs from newer timelines on PostgreSQL 12+Since PostgreSQL 12, the default for
recovery_target_timelinechanged from
currenttolatest. When restoring with PITR options (e.g.,--target-time)
in--no-get-walmode, Barman was only copying WAL files from the backup's
original timeline. This could cause restores to fail when the recovery target
is on a newer timeline.Barman now correctly copies WAL files from all timelines up to the latest
available when performing PITR on PostgreSQL 12+, matching the default
Postgres recovery behavior.References: BAR-1054.
-
Fix multiple warnings about intermediary files not being removed
When using WAL compression, Barman creates intermediary files in the
archive directory during the compression process. Intermediary file paths
are stored in a list and removed at the end of the file archival.However, when archiving multiple files in batch, the list of intermediary
files was not being cleared after each processed file, causing later
archivals to attempt to remove files that no longer exist, resulting in
warnings like the below:WARNING: Could not remove intermediary file /home/gustavo/pg/streaming/0000000100000013000000FD: [Errno 2] No such file or directory: '/home/gustavo/pg/streaming/0000000100000013000000FD'This bug was introduced in version 3.18, commit 5db8ca9. It is now fixed and such
warnings should no longer occur.References: BAR-1228, CP-59700.