barman - Man Page
Backup and Recovery Manager for PostgreSQL
Description
Barman is an administration tool for disaster recovery of PostgreSQL servers written in Python and maintained by EnterpriseDB. Barman can perform remote backups of multiple servers in business critical environments and helps DBAs during the recovery phase.
Configuration File Locations
The system-level Barman configuration file is located at
/etc/barman.conf
or
/etc/barman/barman.conf
and is overridden on a per-user level by
$HOME/.barman.conf
Configuration File Syntax
The Barman configuration file is a plain INI
file. There is a general section called [barman]
and a section [servername]
for each server you want to backup. Rows starting with ;
are comments.
Configuration File Directory
Barman supports the inclusion of multiple configuration files, through the configuration_files_directory
option. Included files must contain only server specifications, not global configurations. If the value of configuration_files_directory
is a directory, Barman reads all files with .conf
extension that exist in that folder. For example, if you set it to /etc/barman.d
, you can specify your PostgreSQL servers placing each section in a separate .conf
file inside the /etc/barman.d
folder.
Options
- active
When set to
true
(default), the server is in full operational state. When set tofalse
, the server can be used for diagnostics, but any operational command such as backup execution or WAL archiving is temporarily disabled. When adding a new server to Barman, we suggest setting active=false at first, making sure that barman check shows no problems, and only then activating the server. This will avoid spamming the Barman logs with errors during the initial setup.Scope: Server/Model.
- archiver
This option allows you to activate log file shipping through PostgreSQL's
archive_command
for a server. If set totrue
, Barman expects that continuous archiving for a server is in place and will activate checks as well as management (including compression) of WAL files that Postgres deposits in the incoming directory. Setting it tofalse
(default), will disable standard continuous archiving for a server. Note: If neitherarchiver
norstreaming_archiver
are set, Barman will automatically set this option totrue
. This is in order to maintain parity with deprecated behaviour wherearchiver
would be enabled by default. This behaviour will be removed from the next major Barman version.Scope: Global/Server/Model.
- archiver_batch_size
This option allows you to activate batch processing of WAL files for the
archiver
process, by setting it to a value > 0. Otherwise, the traditional unlimited processing of the WAL queue is enabled. When batch processing is activated, thearchive-wal
process would limit itself to maximumarchiver_batch_size
WAL segments per single run. Integer.Scope: Global/Server/Model.
- autogenerate_manifest
This option enables the auto-generation of backup manifest files for rsync based backups and strategies. The manifest file is a JSON file containing the list of files contained in the backup. It is generated at the end of the backup process and stored in the backup directory. The manifest file generated follows the format described in the postgesql documentation, and is compatible with the
pg_verifybackup
tool. The option is ignored if the backup method is not rsync.Scope: Global/Server/Model.
- aws_await_snapshots_timeout
The length of time in seconds to wait for snapshots to be created in AWS before timing out. Positive integer, default 3600.
Scope: Global/Server/Model.
- aws_profile
The name of the AWS profile to use when authenticating with AWS (e.g. INI section in AWS credentials file).
Scope: Global/Server/Model.
- aws_region
The name of the AWS region containing the EC2 VM and storage volumes defined by
snapshot_instance
andsnapshot_disks
.Scope: Global/Server/Model.
- azure_credential
The credential type (either
azure-cli
ormanaged-identity
) to use when authenticating with Azure. If this is omitted then the default Azure authentication flow will be used.Scope: Global/Server/Model.
- azure_resource_group
The name of the Azure resource group to which the compute instance and disks defined by
snapshot_instance
andsnapshot_disks
belong. Required when thesnapshot
value is specified forbackup_method
andsnapshot_provider
is set toazure
.Scope: Global/Server/Model.
- azure_subscription_id
The ID of the Azure subscription which owns the instance and storage volumes defined by
snapshot_instance
andsnapshot_disks
. Required when thesnapshot
value is specified forbackup_method
andsnapshot_provider
is set toazure
.Scope: Global/Server/Model.
- backup_compression
The compression to be used during the backup process. Only supported when
backup_method = postgres
. Can either be unset orgzip
,lz4
,zstd
ornone
. If unset then no compression will be used during the backup. Use of this option requires that the CLI application for the specified compression algorithm is available on the Barman server (at backup time) and the PostgreSQL server (at recovery time). Note that thelz4
andzstd
algorithms require PostgreSQL 15 (beta) or later. Note thatnone
compression will create an archive not compressed.Scope: Global/Server/Model.
- backup_compression_format
The format pg_basebackup should use when writing compressed backups to disk. Can be set to either
plain
ortar
. If unset then a default oftar
is assumed. The valueplain
can only be used if the server is running PostgreSQL 15 or later and ifbackup_compression_location
isserver
. Only supported whenbackup_method = postgres
.Scope: Global/Server/Model.
- backup_compression_level
An integer value representing the compression level to use when compressing backups. Allowed values depend on the compression algorithm specified by
backup_compression
. Only supported whenbackup_method = postgres
.Scope: Global/Server/Model.
- backup_compression_location
The location (either
client
orserver
) where compression should be performed during the backup. The valueserver
is only allowed if the server is running PostgreSQL 15 or later.Scope: Global/Server/Model.
- backup_compression_workers
The number of compression threads to be used during the backup process. Only supported when
backup_compression = zstd
is set. Default value is 0. In this case default compression behavior will be used.Scope: Global/Server/Model.
- backup_directory
Directory where backup data for a server will be placed.
Scope: Server.
- backup_method
Configure the method barman used for backup execution. If set to
rsync
(default), barman will execute backup using thersync
command over SSH (requiresssh_command
). If set topostgres
barman will use thepg_basebackup
command to execute the backup. If set tolocal-rsync
, barman will assume to be running on the same server as the PostgreSQL instance and with the same user, then executersync
for the file system copy. If set tosnapshot
, barman will use the API for the cloud provider defined in thesnapshot_provider
option to create snapshots of disks specified in thesnapshot_disks
option and save only the backup label and metadata to its own storage.Scope: Global/Server/Model.
- backup_options
This option allows you to control the way Barman interacts with PostgreSQL for backups. It is a comma-separated list of values that accepts the following options:
concurrent_backup
(default):barman backup
executes backup operations using concurrent backup which is the recommended backup approach for PostgreSQL versions >= 9.6 and uses the PostgreSQL API.concurrent_backup
can also be used to perform a backup from a standby server.exclusive_backup
(PostgreSQL versions older than 15 only):barman backup
executes backup operations using the deprecated exclusive backup approach (technically throughpg_start_backup
andpg_stop_backup
)external_configuration
: if present, any warning regarding external configuration files is suppressed during the execution of a backup.
Note that
exclusive_backup
andconcurrent_backup
are mutually exclusive.Scope: Global/Server/Model.
- bandwidth_limit
This option allows you to specify a maximum transfer rate in kilobytes per second. A value of zero specifies no limit (default).
Scope: Global/Server/Model.
- barman_home
Main data directory for Barman.
Scope: Global.
- barman_lock_directory
Directory for locks. Default:
%(barman_home)s
.Scope: Global.
- basebackup_retry_sleep
Number of seconds of wait after a failed copy, before retrying Used during both backup and recovery operations. Positive integer, default 30.
Scope: Global/Server/Model.
- basebackup_retry_times
Number of retries of base backup copy, after an error. Used during both backup and recovery operations. Positive integer, default 0.
Scope: Global/Server/Model.
- basebackups_directory
Directory where base backups will be placed.
Scope: Server.
- check_timeout
Maximum execution time, in seconds per server, for a barman check command. Set to 0 to disable the timeout. Positive integer, default 30.
Scope: Global/Server/Model.
- cluster
Name of the Barman cluster associated with a Barman server or model. Used by Barman to group servers and configuration models that can be applied to them. Can be omitted for servers, in which case it defaults to the server name. Must be set for configuration models, so Barman knows the set of servers which can apply a given model.
Scope: Server/Model.
- compression
Standard compression algorithm applied to WAL files. Possible values are:
gzip
(requiresgzip
to be installed on the system),bzip2
(requiresbzip2
),pigz
(requirespigz
),pygzip
(Python's internal gzip compressor) andpybzip2
(Python's internal bzip2 compressor).Scope: Global/Server/Model.
- config_changes_queue
Barman uses a queue to apply configuration changes requested through
barman config-update
command. This allows it to serialize multiple requests of configuration changes, and also retry an operation which has been abruptly terminated. This configuration option allows you to specify where in the filesystem the queue should be written. By default Barman writes to a file namedcfg_changes.queue
underbarman_home
.Scope: global.
- conninfo
Connection string used by Barman to connect to the Postgres server. This is a libpq connection string, consult the PostgreSQL manual (https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING) for more information. Commonly used keys are: host, hostaddr, port, dbname, user, password.
Scope: Server/Model.
- create_slot
When set to
auto
andslot_name
is defined, Barman automatically attempts to create the replication slot if not present. When set tomanual
(default), the replication slot needs to be manually created.Scope: Global/Server/Model.
- custom_compression_filter
Customised compression algorithm applied to WAL files.
Scope: Global/Server/Model.
- custom_compression_magic
Customised compression magic which is checked in the beginning of a WAL file to select the custom algorithm. If you are using a custom compression filter then setting this will prevent barman from applying the custom compression to WALs which have been pre-compressed with that compression. If you do not configure this then custom compression will still be applied but any pre-compressed WAL files will be compressed again during WAL archive.
Scope: Global/Server/Model.
- custom_decompression_filter
Customised decompression algorithm applied to compressed WAL files; this must match the compression algorithm.
Scope: Global/Server/Model.
- description
A human readable description of a server.
Scope: Server/Model.
- errors_directory
Directory that contains WAL files that contain an error; usually this is related to a conflict with an existing WAL file (e.g. a WAL file that has been archived after a streamed one).
Scope: Server.
- forward_config_path
Parameter which determines whether a passive node should forward its configuration file path to its primary node during cron or sync-info commands. Set to true if you are invoking barman with the
-c/--config
option and your configuration is in the same place on both the passive and primary barman servers. Defaults to false.Scope: Global/Server/Model.
- gcp_project
The ID of the GCP project which owns the instance and storage volumes defined by
snapshot_instance
andsnapshot_disks
. Required when thesnapshot
value is specified forbackup_method
andsnapshot_provider
is set togcp
.Scope: Global/Server/Model.
- gcp_zone
The name of the availability zone where the compute instance and disks to be backed up in a snapshot backup are located. Required when the
snapshot
value is specified forbackup_method
andsnapshot_provider
is set togcp
.Scope: Server/Model.
- immediate_checkpoint
This option allows you to control the way PostgreSQL handles checkpoint at the start of the backup. If set to
false
(default), the I/O workload for the checkpoint will be limited, according to thecheckpoint_completion_target
setting on the PostgreSQL server. If set totrue
, an immediate checkpoint will be requested, meaning that PostgreSQL will complete the checkpoint as soon as possible.Scope: Global/Server/Model.
- incoming_wals_directory
Directory where incoming WAL files are archived into. Requires
archiver
to be enabled.Scope: Server.
- keepalive_interval
An interval, in seconds, at which a hearbeat query will be sent to the server to keep the libpq connection alive during an Rsync backup. Default is 60. A value of 0 disables it.
Scope: Global/Server/Model.
- last_backup_maximum_age
This option identifies a time frame that must contain the latest backup. If the latest backup is older than the time frame, barman check command will report an error to the user. If empty (default), latest backup is always considered valid. Syntax for this option is: "i (DAYS | WEEKS | MONTHS)" where i is an integer greater than zero, representing the number of days | weeks | months of the time frame.
Scope: Global/Server/Model.
- last_backup_minimum_size
This option identifies lower limit to the acceptable size of the latest successful backup. If the latest backup is smaller than the specified size, barman check command will report an error to the user. If empty (default), latest backup is always considered valid. Syntax for this option is: "i (k|Ki|M|Mi|G|Gi|T|Ti)" where i is an integer greater than zero, with an optional SI or IEC suffix. k=kilo=1000, Ki=Kibi=1024 and so forth. Note that the suffix is case-sensitive.
Scope: Global/Server/Model.
- last_wal_maximum_age
This option identifies a time frame that must contain the latest WAL file archived. If the latest WAL file is older than the time frame, barman check command will report an error to the user. If empty (default), the age of the WAL files is not checked. Syntax is the same as last_backup_maximum_age (above).
Scope: Global/Server/Model.
- local_staging_path
A path to a location on the local host where incremental backups will be combined during the recovery. This location must have enough available space to temporarily hold the new synthetic backup. This option is required when recovering from an incremental backup and has no effect otherwise.
Scope: Global/Server/Model.
- lock_directory_cleanup
enables automatic cleaning up of the
barman_lock_directory
from unused lock files.Scope: Global.
- log_file
Location of Barman's log file.
Scope: Global.
- log_level
Level of logging (DEBUG, INFO, WARNING, ERROR, CRITICAL).
Scope: Global.
- max_incoming_wals_queue
Maximum number of WAL files in the incoming queue (in both streaming and archiving pools) that are allowed before barman check returns an error (that does not block backups). Default: None (disabled).
Scope: Global/Server/Model.
- minimum_redundancy
Minimum number of backups to be retained. Default 0.
Scope: Global/Server/Model.
- model
By default any section configured in the Barman configuration files define the configuration for a Barman server. If you set
model = true
in a section, that turns that section into a configuration model for a givencluster
. Cannot be set asfalse
.Scope: Model.
- network_compression
This option allows you to enable data compression for network transfers. If set to
false
(default), no compression is used. If set totrue
, compression is enabled, reducing network usage.Scope: Global/Server/Model.
- parallel_jobs
This option controls how many parallel workers will copy files during a backup or recovery command. Default 1. For backup purposes, it works only when
backup_method
isrsync
.Scope: Global/Server/Model.
- parallel_jobs_start_batch_period
The time period in seconds over which a single batch of jobs will be started. Default: 1 second.
Scope: Global/Server/Model.
- parallel_jobs_start_batch_size
Maximum number of parallel jobs to start in a single batch. Default: 10 jobs.
Scope: Global/Server/Model.
- path_prefix
One or more absolute paths, separated by colon, where Barman looks for executable files. The paths specified in
path_prefix
are tried before the ones specified inPATH
environment variable.Scope: Global/server/Model.
- post_archive_retry_script
Hook script launched after a WAL file is archived by maintenance. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. In a post archive scenario, ABORT_STOP has currently the same effects as ABORT_CONTINUE.
Scope: Global/Server.
- post_archive_script
Hook script launched after a WAL file is archived by maintenance, after 'post_archive_retry_script'.
Scope: Global/Server.
- post_backup_retry_script
Hook script launched after a base backup. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. In a post backup scenario, ABORT_STOP has currently the same effects as ABORT_CONTINUE.
Scope: Global/Server.
- post_backup_script
Hook script launched after a base backup, after 'post_backup_retry_script'.
Scope: Global/Server.
- post_delete_retry_script
Hook script launched after the deletion of a backup. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. In a post delete scenario, ABORT_STOP has currently the same effects as ABORT_CONTINUE.
Scope: Global/Server.
- post_delete_script
Hook script launched after the deletion of a backup, after 'post_delete_retry_script'.
Scope: Global/Server.
- post_recovery_retry_script
Hook script launched after a recovery. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. In a post recovery scenario, ABORT_STOP has currently the same effects as ABORT_CONTINUE.
Scope: Global/Server.
- post_recovery_script
Hook script launched after a recovery, after 'post_recovery_retry_script'.
Scope: Global/Server.
- post_wal_delete_retry_script
Hook script launched after the deletion of a WAL file. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. In a post delete scenario, ABORT_STOP has currently the same effects as ABORT_CONTINUE.
Scope: Global/Server.
- post_wal_delete_script
Hook script launched after the deletion of a WAL file, after 'post_wal_delete_retry_script'.
Scope: Global/Server.
- pre_archive_retry_script
Hook script launched before a WAL file is archived by maintenance, after 'pre_archive_script'. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. Returning ABORT_STOP will propagate the failure at a higher level and interrupt the WAL archiving operation.
Scope: Global/Server.
- pre_archive_script
Hook script launched before a WAL file is archived by maintenance.
Scope: Global/Server.
- pre_backup_retry_script
Hook script launched before a base backup, after 'pre_backup_script'. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. Returning ABORT_STOP will propagate the failure at a higher level and interrupt the backup operation.
Scope: Global/Server.
- pre_backup_script
Hook script launched before a base backup.
Scope: Global/Server.
- pre_delete_retry_script
Hook script launched before the deletion of a backup, after 'pre_delete_script'. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. Returning ABORT_STOP will propagate the failure at a higher level and interrupt the backup deletion.
Scope: Global/Server.
- pre_delete_script
Hook script launched before the deletion of a backup.
Scope: Global/Server.
- pre_recovery_retry_script
Hook script launched before a recovery, after 'pre_recovery_script'. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. Returning ABORT_STOP will propagate the failure at a higher level and interrupt the recover operation.
Scope: Global/Server.
- pre_recovery_script
Hook script launched before a recovery.
Scope: Global/Server.
- pre_wal_delete_retry_script
Hook script launched before the deletion of a WAL file, after 'pre_wal_delete_script'. Being this a retry hook script, Barman will retry the execution of the script until this either returns a SUCCESS (0), an ABORT_CONTINUE (62) or an ABORT_STOP (63) code. Returning ABORT_STOP will propagate the failure at a higher level and interrupt the WAL file deletion.
Scope: Global/Server.
- pre_wal_delete_script
Hook script launched before the deletion of a WAL file.
Scope: Global/Server.
- primary_checkpoint_timeout
This defines 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.
If not set or set to 0, Barman will not force a checkpoint on the primary, and wait indefinitely for new WAL files to be produced.
The value of this option should be greater of the value of the
archive_timeout
set on the primary server.This option works only if
primary_conninfo
option is set, and it is ignored otherwise.Scope: Server/Model.
- primary_conninfo
The connection string used by Barman to connect to the primary Postgres server during backup of a standby Postgres server. Barman will use this connection to carry out any required WAL switches on the primary during the backup of the standby. This allows backups to complete even when
archive_mode = always
is set on the standby and write traffic to the primary is not sufficient to trigger a natural WAL switch.If primary_conninfo is set then it must be pointing to a primary Postgres instance and conninfo must be pointing to a standby Postgres instance. Furthermore both instances must share the same systemid. If these conditions are not met then
barman check
will fail.The primary_conninfo value must be a libpq connection string; consult the PostgreSQL manual (https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING) for more information. Commonly used keys are: host, hostaddr, port, dbname, user, password.
Scope: Server/Model.
- primary_ssh_command
Parameter that identifies a Barman server as
passive
. In a passive node, the source of a backup server is a Barman installation rather than a PostgreSQL server. Ifprimary_ssh_command
is specified, Barman uses it to establish a connection with the primary server. Empty by default, it can also be set globally.Scope: Global/Server/Model.
- recovery_options
Options for recovery operations. Currently only supports
get-wal
.get-wal
activates generation of a basicrestore_command
in the resulting recovery configuration that uses thebarman get-wal
command to fetch WAL files directly from Barman's archive of WALs. Comma separated list of values, default empty.Scope: Global/Server/Model.
- recovery_staging_path
A path to a location on the recovery host (either the barman server or a remote host if --remote-ssh-command is also used) where files for a compressed backup will be staged before being uncompressed to the destination directory. Backups will be staged in their own directory within the staging path according to the following naming convention: "barman-staging-SERVER_NAME-BACKUP_ID". The staging directory within the staging path will be removed at the end of the recovery process. This option is required when recovering from compressed backups and has no effect otherwise.
Scope: Global/Server/Model.
- retention_policy
Policy for retention of periodic backups and archive logs. If left empty, retention policies are not enforced. For redundancy based retention policy use "REDUNDANCY i" (where i is an integer > 0 and defines the number of backups to retain). For recovery window retention policy use "RECOVERY WINDOW OF i DAYS" or "RECOVERY WINDOW OF i WEEKS" or "RECOVERY WINDOW OF i MONTHS" where i is a positive integer representing, specifically, the number of days, weeks or months to retain your backups. For more detailed information, refer to the official documentation. Default value is empty.
Scope: Global/Server/Model.
- retention_policy_mode
Currently only "auto" is implemented.
Scope: Global/Server/Model.
- reuse_backup
This option controls incremental backup support. Possible values are:
off
: disabled (default);copy
: reuse the last available backup for a server and create a copy of the unchanged files (reduce backup time);link
: reuse the last available backup for a server and create a hard link of the unchanged files (reduce backup time and space). Requires operating system and file system support for hard links.
Scope: Global/Server/Model.
- slot_name
Physical replication slot to be used by the
receive-wal
command whenstreaming_archiver
is set toon
. Default: None (disabled).Scope: Global/Server/Model.
- snapshot_disks
A comma-separated list of disks which should be included in a backup taken using cloud snapshots. Required when the
snapshot
value is specified forbackup_method
.Scope: Server/Model.
- snapshot_instance
The name of the VM or compute instance where the storage volumes are attached. Required when the
snapshot
value is specified forbackup_method
.Scope: Server/Model.
- snapshot_provider
The name of the cloud provider which should be used to create snapshots. Required when the
snapshot
value is specified forbackup_method
. Supported values:gcp
.Scope: Global/Server/Model.
- ssh_command
Command used by Barman to login to the Postgres server via ssh.
Scope: Server/Model.
- streaming_archiver
This option allows you to use the PostgreSQL's streaming protocol to receive transaction logs from a server. If set to
on
, Barman expects to findpg_receivewal
(known aspg_receivexlog
prior to PostgreSQL 10) in the PATH (seepath_prefix
option) and that streaming connection for the server is working. This activates connection checks as well as management (including compression) of WAL files. If set tooff
(default) barman will rely only on continuous archiving for a server WAL archive operations, eventually terminating any runningpg_receivexlog
for the server. Note: If neitherstreaming_archiver
norarchiver
are set, Barman will automatically setarchiver
totrue
. This is in order to maintain parity with deprecated behaviour wherearchiver
would be enabled by default. This behaviour will be removed from the next major Barman version.Scope: Global/Server/Model.
- streaming_archiver_batch_size
This option allows you to activate batch processing of WAL files for the
streaming_archiver
process, by setting it to a value > 0. Otherwise, the traditional unlimited processing of the WAL queue is enabled. When batch processing is activated, thearchive-wal
process would limit itself to maximumstreaming_archiver_batch_size
WAL segments per single run. Integer.Scope: Global/Server/Model.
- streaming_archiver_name
Identifier to be used as
application_name
by thereceive-wal
command. Only available withpg_receivewal
(orpg_receivexlog
>= 9.3). By default it is set tobarman_receive_wal
.Scope: Global/Server/Model.
- streaming_backup_name
Identifier to be used as
application_name
by thepg_basebackup
command. By default it is set tobarman_streaming_backup
.Scope: Global/Server/Model.
- streaming_conninfo
Connection string used by Barman to connect to the Postgres server via streaming replication protocol. By default it is set to
conninfo
.Scope: Server/Model.
- streaming_wals_directory
Directory where WAL files are streamed from the PostgreSQL server to Barman. Requires
streaming_archiver
to be enabled.Scope: Server.
- tablespace_bandwidth_limit
This option allows you to specify a maximum transfer rate in kilobytes per second, by specifying a comma separated list of tablespaces (pairs TBNAME:BWLIMIT). A value of zero specifies no limit (default).
Scope: Global/Server/Model.
- wal_conninfo
A connection string which, if set, will be used by Barman to connect to the Postgres server when checking the status of the replication slot used for receiving WALs. If left unset then Barman will use the connection string defined by
wal_streaming_conninfo
. Ifwal_conninfo
is set butwal_streaming_conninfo
is unset thenwal_conninfo
will be ignored.Scope: Server/Model.
- wal_retention_policy
Policy for retention of archive logs (WAL files). Currently only "MAIN" is available.
Scope: Global/Server/Model.
- wal_streaming_conninfo
A connection string which, if set, will be used by Barman to connect to the Postgres server when receiving WAL segments via the streaming replication protocol. If left unset then Barman will use the connection string defined by
streaming_conninfo
for receiving WAL segments.Scope: Server/Model.
- wals_directory
Directory which contains WAL files.
Scope: Server.
Hook Scripts
The script definition is passed to a shell and can return any exit code.
The shell environment will contain the following variables:
- BARMAN_CONFIGURATION
configuration file used by barman
- BARMAN_ERROR
error message, if any (only for the 'post' phase)
- BARMAN_PHASE
'pre' or 'post'
- BARMAN_RETRY
1
if it is a retry script (from 1.5.0),0
if not- BARMAN_SERVER
name of the server
Backup scripts specific variables:
- BARMAN_BACKUP_DIR
backup destination directory
- BARMAN_BACKUP_ID
ID of the backup
- BARMAN_PREVIOUS_ID
ID of the previous backup (if present)
- BARMAN_NEXT_ID
ID of the next backup (if present)
- BARMAN_STATUS
status of the backup
- BARMAN_VERSION
version of Barman
Archive scripts specific variables:
- BARMAN_SEGMENT
name of the WAL file
- BARMAN_FILE
full path of the WAL file
- BARMAN_SIZE
size of the WAL file
- BARMAN_TIMESTAMP
WAL file timestamp
- BARMAN_COMPRESSION
type of compression used for the WAL file
Recovery scripts specific variables:
- BARMAN_DESTINATION_DIRECTORY
the directory where the new instance is recovered
- BARMAN_TABLESPACES
tablespace relocation map (JSON, if present)
- BARMAN_REMOTE_COMMAND
secure shell command used by the recovery (if present)
- BARMAN_RECOVER_OPTIONS
recovery additional options (JSON, if present)
Only in case of retry hook scripts, the exit code of the script is checked by Barman. Output of hook scripts is simply written in the log file.
Example
Here is an example of configuration file:
[barman] ; Main directory barman_home = /var/lib/barman ; System user barman_user = barman ; Log location log_file = /var/log/barman/barman.log ; Default compression level ;compression = gzip ; Incremental backup reuse_backup = link ; 'main' PostgreSQL Server configuration [main] ; Human readable description description = "Main PostgreSQL Database" ; SSH options ssh_command = ssh postgres@pg ; PostgreSQL connection string conninfo = host=pg user=postgres ; PostgreSQL streaming connection string streaming_conninfo = host=pg user=postgres ; Minimum number of required backups (redundancy) minimum_redundancy = 1 ; Retention policy (based on redundancy) retention_policy = REDUNDANCY 2
See Also
barman
(1).
Authors
Barman maintainers (in alphabetical order):
- Abhijit Menon-Sen
- Jane Threefoot
- Michael Wallace
Past contributors (in alphabetical order):
- Anna Bellandi (QA/testing)
- Britt Cole (documentation reviewer)
- Carlo Ascani (developer)
- Francesco Canovai (QA/testing)
- Gabriele Bartolini (architect)
- Gianni Ciolli (QA/testing)
- Giulio Calacoci (developer)
- Giuseppe Broccolo (developer)
- Jonathan Battiato (QA/testing)
- Leonardo Cecchi (developer)
- Marco Nenciarini (project leader)
- Niccolò Fei (QA/testing)
- Rubens Souza (QA/testing)
- Stefano Bianucci (developer)
Resources
- Homepage: <https://www.pgbarman.org/>
- Documentation: <https://docs.pgbarman.org/>
- Professional support: <https://www.enterprisedb.com/>
Copying
Barman is the property of EnterpriseDB UK Limited and its code is distributed under GNU General Public License v3.
© Copyright EnterpriseDB UK Limited 2011-2023
Authors
EnterpriseDB <https://www.enterprisedb.com>.