Barman#
When an instance is given the barman role in config.yml, TPA will
configure it as a Barman server to take backups of any other
instances that name it in their backup setting.
instances:
- Name: one
backup: two
…
- Name: two
role:
- barman
…
Multiple postgres instances can have the same Barman server named as
their backup ; equally, one postgres instance can have a list of
Barman servers named as its backup and backups will be taken to all
of the named servers.
The default Barman configuration will connect to PostgreSQL using pg_receivewal to take continuous backups of WAL, and will take a full backup of the instance using rsync over ssh twice weekly. Full backups and WAL are retained for long enough to enable recovery to any point in the last 4 weeks.
Barman configuration#
On each barman server, a global configuration file will be created as
/etc/barman.conf ; this contains default values for many barman
configuration variables. For each postgres server being backed up, an
additional Barman configuration file is created: to back up the server
one , the file will be /etc/barman.d/one.conf , and the backups
will be stored in /var/lib/barman/one . The file and directory names
are taken from the backed-up instance’s backup_name setting,
defaulting to the instance’s name.
The following variables can be set on the backed-up instance and are
passed through into Barman’s configuration with the prefix barman_
removed:
variable |
default |
|---|---|
barman_archiver |
false |
barman_log_file |
/var/log/barman.log |
barman_backup_method |
rsync |
barman_compression |
pigz |
barman_reuse_backup |
link |
barman_parallel_jobs |
1 |
barman_backup_options |
concurrent_backup |
barman_immediate_checkpoint |
false |
barman_network_compression |
false |
barman_basebackup_retry_times |
3 |
barman_basebackup_retry_sleep |
30 |
barman_minimum_redundancy |
3 |
barman_retention_policy |
RECOVERY WINDOW OF 4 WEEKS |
barman_last_backup_maximum_age |
1 WEEK |
barman_pre_archive_retry_script |
|
barman_post_backup_retry_script |
|
barman_post_backup_script |
|
barman_streaming_wals_directory |
Backup scheduling#
TPA installs a cron job in /etc/cron.d/barman which will run every
minute and invoke barman cron to perform maintenance tasks.
For each instance being backed up, it installs another cron job in
/etc/cron.d/<backup_name> which takes the backups of that instance.
This job runs as determined by the barman_backup_interval variable
for the instance, with the default being to take backups at 04:00 every
Wednesday and Saturday.