Provided by: barman_3.12.1-1_all bug

NAME

       barman - Barman Configurations

       Barman  follows a convention over configuration approach, which simplifies configuration by allowing some
       options to be defined globally and overridden at the server level. This  means  you  can  set  a  default
       behavior for your servers and then customize specific servers as needed. This design reduces the need for
       excessive configuration while maintaining flexibility.

USAGE

       Proper  configuration  is  critical  for  its  effective  operation.  Barman  uses  different  types   of
       configuration files to manage global settings, server-specific settings, and model-specific settings that
       is made up of three scopes:

       1. Global Configuration: It comprises one file with a set of configurations for the barman  system,  such
       as  the  main  directory,  system  user,  log  file,  and  other  general  options.  Default  location is
       /etc/barman.conf and it can be overridden on a per-user level by ~/.barman.conf or by specifying a  .conf
       file using the -c / --config with the barman command directly in the CLI.

       2.  Server  Configuration:  It  comprises  one  or more files with a set of configurations for a Postgres
       server that you want to keep track and interact for backup, recovery and/or replication. Default location
       is  /etc/barman.d  and must use the .conf suffix. You may have one or multiple files for servers. You can
       override the  default  location  by  setting  the  configuration_files_directory  option  in  the  global
       configuration file and placing the files in that particular location.

       3. Model Configuration: It comprises one or more files with a set of configurations overrides that can be
       applied to Barman servers within the same cluster as the model. These overrides can be implemented  using
       the  barman  config-switch command.  Default location is /etc/barman.d and must use the .conf suffix. The
       same configuration_files_directory override option from the server configuration applies for models.  You
       may have one or multiple files for models.

       NOTE:
          Historically, you could have a single configuration file containing global, server, and model options,
          but, for maintenance reasons, this approach is deprecated.

       Configuration files follow the INI format and consist of sections denoted by headers in square  brackets.
       Each section can include various options.

       Models and servers must have unique identifiers, and reserved words cannot be used as names.

       Reserved Words

       The following reserved words cannot be used as server or model names:

       • barman: Identifies the global section.

       • all: A special shortcut for executing commands on all managed servers.

       Parameter Types

       Configuration options can be of the following types:

       • String: Textual data (e.g., file paths, names).

       • Enum: Enumerated values, often limited to predefined choices.

       • Integer: Numeric values.

       • Boolean: Can be on, true, 1 (true) or off, false, 0 (false).

         NOTE:
            Some enums allow off, but not false.

OPTIONS

       Options  in  the  configuration  files  can  have  specific or shared scopes. The following configuration
       options are used not only for configuring how Barman will execute backups and recoveries,  but  also  for
       configuring  various  aspects  of how Barman interacts with the configured Postgres servers to be able to
       apply your Backup and Recovery, and High-Availability strategies.

   General
       These are general configurations options.

       active

       When this option is set to true (default), the server operates fully. If set  to  false,  the  server  is
       restricted  to  diagnostic  use  only,  meaning that operational commands such as backup execution or WAL
       archiving are temporarily disabled. When incorporating a new server into Barman, we  recommend  initially
       setting  active  =  false.  Verify  that  barman check shows no issues before activating the server. This
       approach helps prevent excessive error logging in Barman during the initial setup.

       Scope: Server / Model.

       archiver

       This option enables log file shipping through Postgres' archive_command for a server. When set  to  true,
       Barman  expects  continuous  archiving to be configured and will manage WAL files that Postgres stores in
       the incoming directory (incoming_wals_directory), including their checks, handling, and compression. When
       set to false (default), continuous archiving is disabled.

       NOTE:
          If neither archiver nor streaming_archiver is configured, Barman will automatically set this option to
          true to maintain compatibility with the previous default  behavior  where  archiving  was  enabled  by
          default.

       Scope: Global / Server / Model.

       archiver_batch_size

       This  option  enables  batch  processing  of  WAL files for the archiver process by setting it to a value
       greater than 0. If not set, the archiver will use unlimited (default) processing mode for the WAL  queue.
       With  batch  processing  enabled,  the  archiver process will handle a maximum of archiver_batch_size WAL
       segments per run. This value must be an integer.

       Scope: Global / Server / Model.

       bandwidth_limit

       Specifies the maximum transfer rate in kilobytes per second for backup and recovery operations.  A  value
       of 0 indicates no limit (default).

       NOTE:
          Applies only when backup_method = postgres | rsync.

       Scope: Global / Server / Model.

       barman_home

       Designates the main data directory for Barman. Defaults to /var/lib/barman.

       Scope: Global.

       barman_lock_directory

       Specifies the directory for lock files. The default is barman_home.

       NOTE:
          The barman_lock_directory should be on a non-network local filesystem.

       Scope: Global.

       basebackup_retry_sleep

       Sets  the  number  of  seconds  to  wait  after a failed base backup copy before retrying.  Default is 30
       seconds. Must be a non-negative integer.

       NOTE:
          This applies to both backup and recovery operations.

       Scope: Global / Server / Model.

       basebackup_retry_times

       Defines the number of retry attempts for a base backup copy after an error  occurs.   Default  is  0  (no
       retries). Must be a non-negative integer.

       NOTE:
          This applies to both backup and recovery operations.

       Scope: Global / Server / Model.

       check_timeout

       Sets the maximum execution time in seconds for a Barman check command per server. Set to 0 to disable the
       timeout. Default is 30 seconds. Must be a non-negative integer.

       Scope: Global / Server / Model.

       cluster

       Tag the server or model to  an  associated  cluster  name.  Barman  uses  this  association  to  override
       configuration for all servers/models in this cluster. If omitted for servers, it defaults to the server's
       name.

       NOTE:
          Must be specified for configuration models to group applicable servers.

       Scope: Server / Model.

       config_changes_queue

       Designates the filesystem location for Barman's queue that handles configuration  changes  requested  via
       the  barman config-update command. This queue manages the serialization and retry of configuration change
       requests. By default, Barman writes to a file named cfg_changes.queue under barman_home.

       Scope: Global.

       configuration_files_directory

       Designates the directory where server/model configuration files will be  read  by  Barman.   Defaults  to
       /etc/barman.d/.

       Scope: Global.

       conninfo

       Specifies  the  connection  string  used  by  Barman  to connect to the Postgres server.  This is a libpq
       connection string. Commonly used keys include: host, hostaddr, port, dbname, user and password. See the ‐
       PostgreSQL documentation for details.

       Scope: Server / Model.

       create_slot

       Determines  whether Barman should automatically create a replication slot if it's not already present for
       streaming WAL files. When set to auto and slot_name is defined, Barman will attempt to  create  the  slot
       automatically. When set to manual (default), the replication slot must be created manually.

       Scope: Global / Server / Model.

       description

       Provides a human-readable description of a server.

       Scope: Server / Model.

       errors_directory

       The  directory where WAL files that were errored while being archived by Barman are stored. This includes
       duplicate WAL files (e.g., an archived WAL file that has already been streamed but have  different  hash)
       and unexpected files found in the WAL archive directory.

       The  purpose  of placing the files in this directory is so someone can later review why they failed to be
       archived and take appropriate actions (dispose of, store  somewhere  else,  replace  the  duplicate  file
       archived before, etc.)

       Scope: Server.

       forward_config_path

       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 Barman is invoked with  the  -c  /  --config  option  and  the
       configuration paths are identical on both passive and primary Barman servers. Defaults to false.

       Scope: Global / Server / Model.

       immediate_checkpoint

       Controls  how  Postgres handles checkpoints at the start of a backup. Set to false (default) to allow the
       checkpoint  to  complete  according  to  checkpoint_completion_target.  Set  to  true  for  an  immediate
       checkpoint, where Postgres completes the checkpoint as quickly as possible.

       Scope: Global / Server / Model.

       keepalive_interval

       Sets  the interval in seconds for sending a heartbeat query to keep the libpq connection active during an
       rsync backup. Default is 60 seconds. Setting this to 0 disables the heartbeat.

       Scope: Global / Server / Model.

       lock_directory_cleanup

       Enables automatic cleanup of unused lock files in the barman_lock_directory.

       Scope: Global.

       log_file

       Specifies the location of Barman's log file. Defaults to /var/log/barman/barman.log.

       Scope: Global.

       log_level

       Sets the level of logging. Options include: DEBUG, INFO, WARNING, ERROR and CRITICAL.

       Scope: Global.

       minimum_redundancy

       Specifies the minimum number of backups to retain. Default is 0.

       Scope: Global / Server / Model.

       model

       When set to true, turns a server section from a configuration file into a model for a cluster.  There  is
       no false option in this case. If you want to simulate a false option, comment out (#model=true) or remove
       the option in the configuration. Defaults to the server name.

       Scope: Model.

       network_compression

       Enables or  disables  data  compression  for  network  transfers.  Set  to  false  (default)  to  disable
       compression, or true to enable it and reduce network usage.

       Scope: Global / Server / Model.

       parallel_jobs

       Controls  the  number  of  parallel  workers  used to copy files during backup or recovery.  It must be a
       positive integer. Default is 1.

       NOTE:
          Applies only when backup_method = rsync.

       Scope: Global / Server / Model.

       parallel_jobs_start_batch_period

       Specifies the time interval in seconds over which a single batch of parallel jobs will start. Default  is
       1 second. This means that if parallel_jobs_start_batch_size is 10 and parallel_jobs_start_batch_period is
       1, this will yield an effective rate limit of 10 jobs per second, because there is a maximum of  10  jobs
       that can be started within 1 second.

       NOTE:
          Applies only when backup_method = rsync.

       Scope: Global / Server / Model.

       parallel_jobs_start_batch_size

       Defines  the  maximum  number of parallel jobs to start in a single batch. Default is 10 jobs. This means
       that if parallel_jobs_start_batch_size is 10 and parallel_jobs_start_batch_period is 2, this will yield a
       maximum of 10 jobs that can be started within 2 seconds.

       NOTE:
          Applies only when backup_method = rsync.

       Scope: Global / Server / Model.

       path_prefix

       Lists  one  or  more  absolute paths, separated by colons, where Barman looks for executable files. These
       paths are checked before the PATH environment variable. This option can be set for each server and  needs
       to point to the bin directory for the appropriate PG_MAJOR_VERSION.

       Scope: Global / Server / Model.

       primary_checkpoint_timeout

       Time to wait for new WAL files before forcing a checkpoint on the primary server.  Defaults to 0.

       Scope: Server / Model.

       primary_conninfo

       Connection string for Barman to connect to the primary Postgres server during a standby backup.

       Scope: Server / Model.

       primary_ssh_command

       SSH command for connecting to the primary Barman server if Barman is passive.

       Scope: Global / Server / Model.

       slot_name

       Replication slot name for the receive-wal command when streaming_archiver is enabled.

       Scope: Global / Server / Model.

       ssh_command

       SSH command used by Barman to connect to the Postgres server for rsync backups.

       Scope: Server / Model.

       streaming_archiver

       Enables Postgres' streaming protocol for WAL files. Defaults to false.

       NOTE:
          If  neither  archiver  nor  streaming_archiver  is  configured, Barman will automatically set archiver
          option to true to maintain compatibility with  the  previous  default  behavior  where  archiving  was
          enabled by default.

       Scope: Global / Server / Model.

       streaming_archiver_batch_size

       Batch size for processing WAL files in streaming archiver. Defaults to 0.

       Scope: Global / Server / Model.

       streaming_archiver_name

       Application name for the receive-wal command. Defaults to barman_receive_wal.

       Scope: Global / Server / Model.

       streaming_backup_name

       Application name for the pg_basebackup command. Defaults to barman_streaming_backup.

       Scope: Global / Server / Model.

       streaming_conninfo

       Connection string for streaming replication protocol. Defaults to conninfo.

       Scope: Server / Model.

       tablespace_bandwidth_limit

       Maximum  transfer  rate  for  specific  tablespaces  for  backup  and  recovery operations.  A value of 0
       indicates no limit (default).

       NOTE:
          Applies only when backup_method = rsync.

       Scope: Global / Server / Model.

   Backups
       These configurations options are related to how Barman will execute backups.

       autogenerate_manifest

       This is a boolean option that allows for the automatic creation of backup manifest  files.  The  manifest
       file,  which  is a JSON document, lists all files included in the backup. It is generated upon completion
       of the backup and saved in the backup  directory.  The  format  of  the  manifest  file  adheres  to  the
       specifications  outlined in the PostgreSQL documentation and is compatible with the pg_verifybackup tool.
       Default is false.

       NOTE:
          This option is ignored if the backup_method is not rsync.

       Scope: Global / Server / Model.

       backup_compression

       Specifies the compression method for the backup process. It can be set  to  gzip,  lz4,  zstd,  or  none.
       Ensure  that  the CLI tool for the chosen compression method is available on both the Barman and Postgres
       servers.

       NOTE:
          Note that lz4 and zstd require Postgres version 15 or later.  Unsetting  this  option  or  using  none
          results in an uncompressed archive (default). Only supported when backup_method = postgres.

       Scope: Global / Server / Model.

       backup_compression_format

       Determines the format pg_basebackup should use when saving compressed backups.  Options are plain or tar,
       with tar as the default if unset. The plain format is available only if Postgres version 15 or  later  is
       in use and backup_compression_location is set to server.

       NOTE:
          Only supported when backup_method = postgres.

       Scope: Global / Server / Model.

       backup_compression_level

       Defines  the  level  of  compression  for  backups  as  an  integer. The permissible values depend on the
       compression method specified in backup_compression.

       NOTE:
          Only supported when backup_method = postgres.

       Scope: Global / Server / Model.

       backup_compression_location

       Specifies where compression should occur during the backup: either client or server. The server option is
       available only if Postgres version 15 or later is being used.

       NOTE:
          Only supported when backup_method = postgres.

       Scope: Global / Server / Model.

       backup_compression_workers

       Sets  the  number of threads used for compression during the backup process. This is applicable only when
       backup_compression=zstd. The default value is 0, which uses the standard compression behavior.

       NOTE:
          Only supported when backup_method = postgres.

       Scope: Global / Server / Model.

       backup_directory

       Specifies  the  directory  where   backup   data   for   a   server   will   be   stored.   Defaults   to
       <barman_home>/<server_name>.

       Scope: Server.

       backup_method

       Defines the method Barman uses to perform backups. Options include:

       • rsync (default): Executes backups using the rsync command over SSH (requires ssh_command).

       • postgres: Uses the pg_basebackup command for backups.

       • local-rsync:  Assumes  Barman  runs  on  the same server and as the same user as the Postgres database,
         performing an rsync file system copy.

       • snapshot: Utilizes the API of the cloud provider specified in the snapshot_provider  option  to  create
         disk  snapshots  as  defined  in snapshot_disks and saves only the backup label and metadata to its own
         storage.

       Scope: Global / Server / Model.

       backup_options

       Controls how Barman interacts with Postgres during backups. This  is  a  comma-separated  list  that  can
       include:

       • concurrent_backup  (default):  Uses concurrent backup, recommended for Postgres versions 9.6 and later,
         and supports backups from standby servers.

       • exclusive_backup: Uses the deprecated exclusive backup method. Only for Postgres  versions  older  than
         15. This option will be removed in the future.

       • external_configuration: Suppresses warnings about external configuration files during backup execution.

       NOTE:
          exclusive_backup and concurrent_backup cannot be used together.

       Scope: Global / Server / Model.

       basebackups_directory

       Specifies the directory where base backups are stored. Defaults to <backup_directory>/base.

       Scope: Server.

       reuse_backup

       Controls  incremental backup support when using backup_method=rsync by reusing the last available backup.
       The options are:

       • off (default): Standard full backup.

       • copy: File-level incremental backup, by reusing the last backup for a server and creating a copy of the
         unchanged files (just for backup time reduction)

       • link:  File-level  incremental backup, by reusing the last backup for a server and creating a hard link
         of the unchanged files (for backup space and time reduction)

       NOTE:
          This option will be ignored when backup_method=postgres.

       Scope: Global / Server / Model.

   Cloud Backups
       These configuration options are related to how Barman will execute backups in the cloud.

       aws_await_snapshots_timeout

       Specifies the duration in seconds to wait for AWS snapshots to be created before a  timeout  occurs.  The
       default value is 3600 seconds. This must be a positive integer.

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = aws.

       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).

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = aws.

       Scope: Global / Server / Model.

       aws_region

       Indicates the AWS region where the EC2 VM and  storage  volumes,  as  defined  by  snapshot_instance  and
       snapshot_disks, are located.

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = aws.

       Scope: Global / Server / Model.

       aws_snapshot_lock_mode

       The lock mode for the snapshot. This is only valid if snapshot_instance and snapshot_disk are set.

       Allowed options:

       • compliance.

       • governance.

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = aws.

       Scope: Global / Server / Model.

       aws_snapshot_lock_duration

       The  lock  duration  is  the period of time (in days) for which the snapshot is to remain locked, ranging
       from 1 to 36,500. Set either the lock duration or the expiration date (not both).

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = aws.

       Scope: Global / Server / Model.

       aws_snapshot_lock_cool_off_period

       The cooling-off period is an optional period of time (in hours) that you can  specify  when  you  lock  a
       snapshot in compliance mode, ranging from 1 to 72.

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = aws.

       Scope: Global / Server / Model.

       aws_snapshot_lock_expiration_date

       The  lock duration is determined by an expiration date in the future. It must be at least 1 day after the
       snapshot creation date and time, using the format YYYY-MM-DDTHH:MM:SS.sssZ. Set either the lock  duration
       or the expiration date (not both).

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = aws.

       Scope: Global / Server / Model.

       azure_credential

       Specifies  the  type of Azure credential to use for authentication, either azure-cli or managed-identity.
       If not provided, the default Azure authentication method will be used.

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = azure.

       Scope: Global / Server / Model.

       azure_resource_group

       Specifies the name of the Azure resource group containing the  compute  instance  and  disks  defined  by
       snapshot_instance and snapshot_disks.

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = azure.

       Scope: Global / Server / Model.

       azure_subscription_id

       Identifies the Azure subscription that owns the instance and storage volumes defined by snapshot_instance
       and snapshot_disks.

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = azure.

       Scope: Global / Server / Model.

       gcp_project

       Specifies  the  ID  of  the  GCP  project  that  owns  the  instance  and  storage  volumes  defined   by
       snapshot_instance and snapshot_disks.

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = gcp.

       Scope: Global / Server / Model.

       gcp_zone

       Indicates the availability zone where the compute instance and disks are located for snapshot backups.

       NOTE:
          Only supported when backup_method = snapshot and snapshot_provider = gcp.

       Scope: Server / Model.

       snapshot_disks

       This option is a comma-separated list of disks to include in cloud snapshot backups.

       NOTE:
          Required when backup_method = snapshot.

          Ensure  that  the  snapshot_disks list includes all disks that store Postgres data, as any data not on
          these listed disks will not be included in the backup and will be unavailable during recovery.

       Scope: Server / Model.

       snapshot_instance

       The name of the VM or compute instance where the storage volumes are attached.

       NOTE:
          Required when backup_method = snapshot.

       Scope: Server / Model.

       snapshot_provider

       The name of the cloud provider to use for creating snapshots. Supported value: aws, azure and gcp.

       NOTE:
          Required when backup_method = snapshot.

       Scope: Global / Server / Model.

   Hook Scripts
       These configuration options are related to the pre or post execution of hook scripts.

       post_archive_retry_script

       Specifies a hook script to run after a WAL file is archived. Barman  will  retry  this  script  until  it
       returns  SUCCESS (0), ABORT_CONTINUE (62), or ABORT_STOP (63). In a post-archive scenario, ABORT_STOP has
       the same effect as ABORT_CONTINUE.

       Scope: Global / Server.

       post_archive_script

       Specifies a hook script to run after a WAL file is archived, following the post_archive_retry_script.

       Scope: Global / Server.

       post_backup_retry_script

       Specifies a hook script to run after a base backup. Barman  will  retry  this  script  until  it  returns
       SUCCESS  (0), ABORT_CONTINUE (62), or ABORT_STOP (63). In a post-backup scenario, ABORT_STOP has the same
       effect as ABORT_CONTINUE.

       Scope: Global / Server.

       post_backup_script

       Specifies a hook script to run after a base backup, following the post_backup_retry_script.

       Scope: Global / Server.

       post_delete_retry_script

       Specifies a hook script to run after deleting a backup. Barman will retry this script  until  it  returns
       SUCCESS  (0), ABORT_CONTINUE (62), or ABORT_STOP (63). In a post-delete scenario, ABORT_STOP has the same
       effect as ABORT_CONTINUE.

       Scope: Global / Server.

       post_delete_script

       Specifies a hook script to run after deleting a backup, following the post_delete_retry_script.

       Scope: Global / Server.

       post_recovery_retry_script

       Specifies a hook script to run after a recovery. Barman will retry this script until it  returns  SUCCESS
       (0), ABORT_CONTINUE (62), or ABORT_STOP (63). In a post-recovery scenario, ABORT_STOP has the same effect
       as ABORT_CONTINUE.

       Scope: Global / Server.

       post_recovery_script

       Specifies a hook script to run after a recovery, following the post_recovery_retry_script.

       Scope: Global / Server.

       post_wal_delete_retry_script

       Specifies a hook script to run after deleting a WAL file. Barman will retry this script until it  returns
       SUCCESS  (0),  ABORT_CONTINUE (62), or ABORT_STOP (63). In a post-WAL-delete scenario, ABORT_STOP has the
       same effect as ABORT_CONTINUE.

       Scope: Global / Server.

       post_wal_delete_script

       Specifies a hook script to run after deleting a WAL file, following the post_wal_delete_retry_script.

       Scope: Global / Server.

       pre_archive_retry_script

       Specifies a hook script that runs before a  WAL  file  is  archived  during  maintenance,  following  the
       pre_archive_script.  As  a  retry hook script, Barman will repeatedly execute the script until it returns
       either SUCCESS (0), ABORT_CONTINUE (62), or ABORT_STOP  (63).  Returning  ABORT_STOP  will  escalate  the
       failure and halt the WAL archiving process.

       Scope: Global / Server.

       pre_archive_script

       Specifies a hook script launched before a WAL file is archived by maintenance.

       Scope: Global / Server.

       pre_backup_retry_script

       Specifies  a hook script that runs before a base backup, following the pre_backup_script. As a retry hook
       script, Barman will attempt to execute the script repeatedly until it returns SUCCESS (0), ABORT_CONTINUE
       (62),  or  ABORT_STOP  (63).  Returning  ABORT_STOP  will  escalate  the failure and interrupt the backup
       process.

       Scope: Global / Server.

       pre_backup_script

       Specifies a hook script to run before starting a base backup.

       Scope: Global / Server.

       pre_delete_retry_script

       Specifies a retry hook script to run before backup deletion, following the pre_delete_script. As a  retry
       hook  script,  Barman  will  attempt  to  execute  the  script  repeatedly  until it returns SUCCESS (0),
       ABORT_CONTINUE (62), or ABORT_STOP (63). Returning ABORT_STOP will escalate the failure and interrupt the
       backup deletion.

       Scope: Global / Server.

       pre_delete_script

       Specifies a hook script run before deleting a backup.

       Scope: Global / Server.

       pre_recovery_retry_script

       Specifies  a retry hook script to run before recovery, following the pre_recovery_script. As a retry hook
       script, Barman will attempt to execute the script repeatedly until it returns SUCCESS (0), ABORT_CONTINUE
       (62),  or  ABORT_STOP  (63).  Returning  ABORT_STOP  will  escalate the failure and interrupt the recover
       process.

       Scope: Global / Server.

       pre_recovery_script

       Specifies a hook script run before starting a recovery.

       Scope: Global / Server.

       pre_wal_delete_retry_script

       Specifies a retry hook script for WAL file deletion, executed before pre_wal_delete_script.  As  a  retry
       hook  script,  Barman  will  attempt  to  execute  the  script  repeatedly  until it returns SUCCESS (0),
       ABORT_CONTINUE (62), or ABORT_STOP (63). Returning ABORT_STOP will escalate the failure and interrupt the
       WAL file deletion.

       Scope: Global / Server.

       pre_wal_delete_script

       Specifies a hook script run before deleting a WAL file.

       Scope: Global / Server.

   Write-Ahead Logs (WAL)
       These  configuration  options  are  related  to how Barman will manage the Write-Ahead Logs (WALs) of the
       PostreSQL servers.

       compression

       Specifies the standard compression algorithm for  WAL  files.  Options  include:  lz4,  xz,  zstd,  gzip,
       pybzip2, pigz, bzip2, pybzip2 and custom.

       NOTE:
          All  of  these  options  require the module to be installed in the location where the compression will
          occur.

          The custom option is for custom compression, which requires you to set the following options as well:

          • custom_compression_filter: a compression filter.

          • custom_decompression_filter: a decompression filter

          • custom_compression_magic: a hex string to identify a custom compressed wal file.

       Scope: Global / Server / Model.

       custom_compression_filter

       Specifies a custom compression algorithm for WAL files. It must be a string that will be used  internally
       to  create  a  bash  command and it will prefix to the following string > "$2" < "$1";. Write to standard
       output and do not delete input files.

       TIP:
          custom_compression_filter = "xz -c"

          This is the same as running xz -c > "$2" < "$1";.

       Scope: Global / Server / Model.

       custom_compression_magic

       Defines a custom magic value to identify the custom compression algorithm used in WAL files. If  this  is
       set,  Barman  will  avoid  applying custom compression to WALs that have already been compressed with the
       specified algorithm. If not configured, Barman will apply custom compression to all WAL files, even those
       pre-compressed.

       TIP:
          For  example,  in  the  xz compression algorithm, the magic number is used to detect the format of .xz
          files.

          For xz files, the magic number is the following sequence of bytes:
                 Magic Number: FD 37 7A 58 5A 00

          In hexadecimal representation, this can be expressed as:
                 Hex String: fd377a585a00

          Reference: xz-file-format

       Scope: Global / Server / Model.

       custom_decompression_filter

       Specifies a custom decompression algorithm for compressed WAL files. It must be a  string  that  will  be
       used  internally  to  create a bash command and it will prefix to the following string > "$2" < "$1";. It
       must correspond with the compression algorithm used.

       TIP:
          custom_compression_filter = "xz -c -d"

          This is the same as running xz -c -d > "$2" < "$1";.

       Scope: Global / Server / Model.

       incoming_wals_directory

       Specifies the directory where incoming WAL files are archived. Requires archiver to be enabled.  Defaults
       to <backup_directory>/incoming.

       Scope: Server.

       last_wal_maximum_age

       Defines  the  time  frame  within which the latest archived WAL file must fall. If the latest WAL file is
       older than this period, the barman check command will report an error. If left empty (default),  the  age
       of the WAL files is not checked. Format is the same as last_backup_maximum_age.

       Scope: Global / Server / Model.

       max_incoming_wals_queue

       Defines  the  maximum  number  of  WAL  files allowed in the incoming queue (including both streaming and
       archiving pools) before the barman check command returns an error.  Default is None (disabled).

       Scope: Global / Server / Model.

       streaming_wals_directory

       Directory for streaming WAL files. Defaults to <backup_directory>/streaming.

       NOTE:
          This option is applicable when streaming_archiver is activated.

       Scope: Server.

       wal_conninfo

       The wal_conninfo connection string is used by Barman for monitoring the status of  the  replication  slot
       receiving  WALs.  If  specified,  it  takes  precedence  over wal_streaming_conninfo for these checks. If
       wal_conninfo  is  not   set   but   wal_streaming_conninfo   is,   wal_conninfo   will   fall   back   to
       wal_streaming_conninfo. If neither wal_conninfo nor wal_streaming_conninfo is set, wal_conninfo will fall
       back to conninfo. Both connection strings must access a Postgres instance  within  the  same  cluster  as
       defined by streaming_conninfo and conninfo. If both wal_conninfo and wal_streaming_conninfo are set, only
       wal_conninfo needs the appropriate permissions to read settings and check the  replication  slot  status.
       However,  if  only wal_streaming_conninfo is set, it must have the necessary permissions to perform these
       tasks. The  required  permissions  include  roles  such  as  pg_monitor,  both  pg_read_all_settings  and
       pg_read_all_stats, or superuser privileges.

       Scope: Server / Model.

       wal_streaming_conninfo

       This connection string is used by Barman to connect to the Postgres server for receiving WAL segments via
       streaming replication and checking the replication slot status,  if  wal_conninfo  is  not  set.  If  not
       specified,  Barman  defaults  to  using  streaming_conninfo  for these tasks. wal_streaming_conninfo must
       connect to a Postgres instance within the same cluster as defined  by  streaming_conninfo,  and  it  must
       support streaming replication. If both wal_streaming_conninfo and wal_conninfo are set, only wal_conninfo
       needs the required permissions  to  read  settings  and  check  the  replication  slot  status.  If  only
       wal_streaming_conninfo  is  specified,  it must have these permissions. The necessary permissions include
       roles such as pg_monitor, both pg_read_all_settings and pg_read_all_stats, or superuser privileges.

       Scope: Server / Model.

       wals_directory

       Directory containing WAL files. Defaults to <backup_directory>/wals.

       Scope: Server.

   Restore
       These configuration options are related to how Barman manages restoration backups.

       local_staging_path

       Specifies the local path for combining block-level incremental backups during  recovery.   This  location
       must  have  sufficient space to temporarily store the new synthetic backup.  Required for recovery from a
       block-level incremental backup.

       NOTE:
          Applies only when backup_method = postgres.

       Scope: Global / Server / Model.

       recovery_options

       Options for recovery operations. Currently, only get-wal is supported. This option enables  the  creation
       of  a  basic  restore_command  in  the  recovery  configuration, which uses the barman get-wal command to
       retrieve WAL files directly from Barman's WAL archive. This setting accepts  a  comma-separated  list  of
       values and defaults to empty.

       Scope: Global / Server / Model.

       recovery_staging_path

       Specifies  the  path  on  the recovery host for staging files from compressed backups. This location must
       have sufficient space to temporarily store the compressed backup.

       NOTE:
          Applies only for commpressed backups.

       Scope: Global / Server / Model.

   Retention Policies
       These configuration options are related to how Barman manages retention policies of the backups.

       last_backup_maximum_age

       Defines the time frame within which the latest backup must fall. If the latest backup is older than  this
       period,  the  barman  check  command  will report an error. If left empty (default), the latest backup is
       always considered valid. The accepted format is "n {DAYS|WEEKS|MONTHS}", where n is  an  integer  greater
       than zero.

       Scope: Global / Server / Model.

       last_backup_minimum_size

       Specifies  the  minimum acceptable size for the latest successful backup. If the latest backup is smaller
       than this size, the barman check command will report an error. If left empty (default), the latest backup
       is  always considered valid. The accepted format is "n {k|Ki|M|Mi|G|Gi|T|Ti}" and case-sensitive, where n
       is an integer greater than zero, with an optional SI or IEC suffix. k stands for  kilo  with  k  =  1000,
       while  Ki  stands  for  kilobytes  Ki = 1024. The rest of the options have the same reasoning for greater
       units of measure.

       Scope: Global / Server / Model.

       retention_policy

       Defines how long backups and WAL files should be retained. If this option is  left  blank,  no  retention
       policies will be applied. Options include redundancy and recovery window policies.

          retention_policy = {REDUNDANCY value | RECOVERY WINDOW OF value {DAYS | WEEKS | MONTHS}}

       • retention_policy  =  REDUNDANCY 2 will keep only 2 backups in the backup catalog automatically deleting
         the older one as new backups are created. The number must be a positive integer.

       • retention_policy = RECOVERY WINDOW OF 2 DAYS will only keep backups needed to recover to any  point  in
         time  in  the last two days, automatically deleting backups that are older. The period number must be a
         positive integer, and   the following options can be applied to it: DAYS, WEEKS, MONTHS.

       Scope: Global / Server / Model.

       retention_policy_mode

       Mode for enforcing retention policies. Currently only supports auto.

       Scope: Global / Server / Model.

       wal_retention_policy

       Policy for retaining WAL files. Currently only main is available.

       Scope: Global / Server / Model.

CONFIGURATION MODELS

       Configuration models provide a systematic approach  to  manage  and  apply  configuration  overrides  for
       Postgres servers by organizing them under a specific cluster name.

   Purpose
       The  primary  goal  of  a configuration model is to simplify the management of configuration settings for
       Postgres servers grouped by the same  cluster.  By  using  a  model,  you  can  apply  a  set  of  common
       configuration  overrides,  enhancing  operational efficiency. They are especially beneficial in clustered
       environments, allowing you to create various configuration models that can be  utilized  during  failover
       events.

   Application
       The configurations defined in a model file can be applied to Postgres servers that share the same cluster
       name specified in the model. Consequently, any server utilizing that model can  inherit  these  settings,
       promoting a consistent and adaptable configuration across all servers.

   Usage
       Model options can only be defined within a model section, which is identified in the same way as a server
       section. It is important to ensure that there are no conflicts between the identifiers of server sections
       and model sections.

       To  apply  a  configuration  model, execute the barman config-switch SERVER_NAME MODEL_NAME. This command
       facilitates the application of the model's overrides to the relevant Barman server  associated  with  the
       specified cluster name.

       If you wish to remove the overrides, the deletion of the model configuration file alone will not have any
       effect, so you can do so by using the --reset argument with the command, as follows: barman config-switch
       SERVER_NAME --reset.

       NOTE:
          The  config-switch  command  will  only  succeed  if model name exists and is associated with the same
          cluster as the server. Additionally, there can be only one active model at a time; if you execute  the
          command  multiple  times  with  different models, only the overrides defined in the last model will be
          applied.

          Not all options  can  be  configured  through  models.  Please  review  the  scope  of  the  available
          configurations to determine which settings apply to models.

   Benefits
       • Consistency: Ensures uniform configuration across multiple Barman servers within a cluster.

       • Efficiency: Simplifies configuration management by allowing centralized updates and overrides.

       • Flexibility:  Allows  the  use of multiple model files, providing the ability to define various sets of
         overrides as necessary.

AUTHOR

       EnterpriseDB

COPYRIGHT

       © Copyright EnterpriseDB UK Limited 2011-2024