Barman - Backup and Recovery Manager for PostgreSQL
barman-cloud-backup
when backing
up to either AWS S3 or Azure Blob Storage according to the value set by
a new CLI option --max-bandwidth
.lock_directory_cleanup
That enables cron to automatically clean up the barman_lock_directory
from unused lock files.model
.
The model acts as a set of overrides for configuration options
for a given Barman server.barman config-update
that allows the creation
and the update of configurations using JSON--min-chunk-size
to be ignored when using
barman-cloud-backup as hook script in Barman.Allow barman switch-wal --force
to be run against PG>=14 if the
user has the pg_checkpoint
role (thanks to toydarian for this patch).
Log the current check at info
level when a check timeout occurs.
The minimum size of an upload chunk when using barman-cloud-backup
with either S3 or Azure Blob Storage can now be specified using the
--min-chunk-size
option.
backup_compression = none
is supported when using pg_basebackup
.
For PostgreSQL 15 and later: the allowed backup_compression_level
values for zstd
and lz4
have been updated to match those allowed by
pg_basebackup
.
For PostgreSQL versions earlier than 15: backup_compression_level = 0
can now be used with backup_compression = gzip
.
barman recover
on platforms where Multiprocessing uses spawn by
default when starting new processes.A backup can now be given a name at backup time using the new --name
option supported by the barman backup
and barman-cloud-backup
commands. The backup name can then be used in place of the backup ID
when running commands to interact with backups. Additionally, the
commands to list and show backups have been been updated to include
the backup name in the plain text and JSON output formats.
Stricter checking of PostgreSQL version to verify that Barman is running against a supported version of PostgreSQL.
Fix inconsistencies between the barman cloud command docs and the help output for those commands.
Use a new PostgreSQL connection when switching WALs on the primary
during the backup of a standby to avoid undefined behaviour such as
SSL error
messages and failed connections.
Reduce log volume by changing the default log level of stdout for
commands executed in child processes to DEBUG
(with the exception
of pg_basebackup
which is deliberately logged at INFO
level due
to it being a long-running process where it is frequently useful to
see the output during the execution of the command).
Clarify package installation. barman is packaged with default python version for each operating system.
The minimum-redundancy
option is added to barman-cloud-backup-delete
.
It allows to set the minimum number of backups that should always be available.
Add a new primary_checkpoint_timeout
configuration option. Allows define
the amount of seconds that Barman will wait at the end of a backup if no
new WAL files are produced, before forcing a checkpoint on the primary server.
Fix race condition in barman retention policies application. Backup deletions will now raise a warning if another deletion is in progress for the requested backup.
Fix barman-cloud-backup-show
man page installation.
Support is added for snapshot backups on AWS using EBS volumes.
The --profile
option in the barman-cloud-*
scripts is renamed
--aws-profile
. The old name is deprecated and will be removed in
a future release.
Backup manifests can now be generated automatically on completion
of a backup made with backup_method = rsync
. This is enabled by
setting the autogenerate_manifest
configuration variable and can
be overridden using the --manifest
and --no-manifest
CLI options.
The barman-cloud-*
scripts now correctly use continuation
tokens to page through objects in AWS S3-compatible object
stores. This fixes a bug where barman-cloud-backup-delete
would only delete the oldest 1000 eligible WALs after backup
deletion.
Minor documentation fixes.
PostgreSQL version 10 is no longer supported.
Support is added for snapshot backups on Microsoft Azure using Managed Disks.
The --snapshot-recovery-zone
option is renamed --gcp-zone
for
consistency with other provider-specific options. The old name
is deprecated and will be removed in a future release.
The snapshot_zone
option and --snapshot-zone
argument are
renamed gcp_zone
and --gcp-zone
respectively. The old names
are deprecated and will be removed in a future release.
The snapshot_gcp_project
option and --snapshot-gcp-project
argument are renamed to gcp_project
and --gcp-project
. The
old names are deprecated and will be removed in a future release.
Barman will no longer attempt to execute the replication-status
command for a passive node.
The backup_label
is deleted from cloud storage when a
snapshot backup is deleted with barman-cloud-backup-delete
.
Man pages for the generate-manifest
and verify-backup
commands are added.
Minor documentation fixes.
Fix a bug which prevented barman-cloud-backup-show
from
displaying the backup metadata for backups made with
barman backup
and uploaded by barman-cloud-backup
as a
post-backup hook script.
Fix a bug where the PostgreSQL connection used to validate backup compression settings was left open until termination of the Barman command.
Fix an issue which caused rsync-concurrent backups to fail when
running for a duration greater than idle_session_timeout
.
Fix a bug where the backup name was not saved in the backup
metadata if the --wait
flag was used with barman backup
.
We thank the following who contributed to this release:
Python 2.7 is no longer supported. The earliest Python version supported is now 3.6.
The barman
, barman-cli
and barman-cli-cloud
packages for
EL7 now require python 3.6 instead of python 2.7. For other
supported platforms, Barman packages already require python
versions 3.6 or later so packaging is unaffected.
Support for PostgreSQL 10 will be discontinued in future Barman releases; 3.5.x is the last version of Barman with support for PostgreSQL 10.
Backups and WALs uploaded to Google Cloud Storage can now be
encrypted using a specific KMS key by using the --kms-key-name
option with barman-cloud-backup
or barman-cloud-wal-archive
.
Backups and WALs uploaded to AWS S3 can now be encrypted using a
specific KMS key by using the --sse-kms-key-id
option with
barman-cloud-backup
or barman-cloud-wal-archive
along with
--encryption=aws:kms
.
Two new configuration options are provided which make it possible
to limit the rate at which parallel workers are started during
backups with backup_method = rsync
and recoveries.
parallel_jobs_start_batch_size
can be set to limit the amount of
parallel workers which will be started in a single batch, and
parallel_jobs_start_batch_period
can be set to define the time
in seconds over which a single batch of workers will be started.
These can be overridden using the arguments --jobs-start-batch-size
and --jobs-start-batch-period
with the barman backup
and
barman recover
commands.
A new option --recovery-conf-filename
is added to barman recover
.
This can be used to change the file to which Barman should write the
PostgreSQL recovery options from the default postgresql.auto.conf
to an alternative location.
Fix a bug which prevented barman-cloud-backup-show
from
displaying the backup metadata for backups made with
barman backup
and uploaded by barman-cloud-backup
as a
post-backup hook script.
Fix a bug where the PostgreSQL connection used to validate backup compression settings was left open until termination of the Barman command.
Fix an issue which caused rsync-concurrent backups to fail when
running for a duration greater than idle_session_timeout
.
Fix a bug where the backup name was not saved in the backup
metadata if the --wait
flag was used with barman backup
.
We thank the following who contributed to this release:
This is the last release of Barman which will support Python 2 and new features will henceforth require Python 3.6 or later.
A new backup_method
named snapshot
is added. This will create
backups by taking snapshots of cloud storage volumes. Currently
only Google Cloud Platform is supported however support for AWS
and Azure will follow in future Barman releases. Note that this
feature requires a minimum Python version of 3.7. Please see the
Barman manual for more information.
Support for snapshot backups is also added to barman-cloud-backup
,
with minimal support for restoring a snapshot backup added to
barman-cloud-restore
.
A new command barman-cloud-backup-show
is added which displays
backup metadata stored in cloud object storage and is analogous to
barman show-backup
. This is provided so that snapshot metadata
can be easily retrieved at restore time however it is also a
convenient way of inspecting metadata for any backup made with
barman-cloud-backup
.
The instructions for installing Barman from RPMs in the docs are updated.
The formatting of NFS requirements in the docs is fixed.
Supported PostgreSQL versions are updated in the docs (this is a documentation fix only - the minimum supported major version is still 10).
barman-cloud-backup-delete
now accepts a --batch-size
option
which determines the maximum number of objects deleted in a single
request.barman-cloud-*
commands now accept a --read-timeout
option
which, when used with the aws-s3
cloud provider, determines the
read timeout used by the boto3 library when making requests to S3.barman recover
in cases where
backup_compression
is set in the Barman configuration but the
PostgreSQL server is unavailable.