When restoring a barman PITR backup you may encounter this error:
Copying required WAL segments.
EXCEPTION: {'ret': 2, 'err': '/bin/sh: 1: cannot open /var/lib/barman/foopostgres/wals/00000007.history: No such file\n', 'out': ''}
The reason is that the barman backups xlog.db
file contains a history file which is no longer present in the wals
directory of your backup. The most likely reason is that someone deleted this file in the past. If you do not need this file for restoring your current backup (maybe because it's very old and you try to restore a recent backup) you can rebuild
your xlog.db
file.
recommendation: never delete the history
files in your barman backup directories. Even though you (think) that you will not need them anymore. This will prevent issues like this.
Before you rebuild you xlog.db
file you should create a backup:
cp /var/lib/barman/foopostgres/wals/xlog.db /var/lib/barman/foopostgres_xlog.db_bck
Afterwards you can rebuild your xlog.db
and you recovery should work: \
barman rebuild-xlogdb foopostgres
What is the xlog.db
file?
The file contains metadata about your wal archive on the barman server. It's updated when new WAL data arrives or when barman deletes outdated WAL data. If you delete files manually you will encounter problems when trying to restore a backup.