Barman 1.4.0 released

3 minute read

26 January 2015: 2ndQuadrant is proud to announce the release of version 1.4.0 of Barman, Backup and Recovery Manager for PostgreSQL.

This major release features file-level incremental backup, a kind of full periodic backup which saves only data changes from the latest full backup available in the catalogue for a specific PostgreSQL server. Depending on the context and the database workload, the data deduplication ratio might easily reach 50-70% per full backup, leading to significant reductions in both backup time and disk space.

PostgreSQL 9.4 users will transparently benefit from the integration of Barman with pg_stat_archiver view. In particular, any continuous archiving problem will be immediately spotted by the barman check command directly on the source.

Management of WAL files has been improved, by optimising the calculation of WAL statistics, tying archiving with backup and by distinctively managing WAL trashing for exclusive and concurrent backups.

Relevant efforts in unit testing have made the code more robust. Minor bugs have also been fixed.

Many thanks for funding towards the development of this release go to BIJ12 (www.bij12.nl), Jobrapido (www.jobrapido.com), Navionics (www.navionics.com), Sovon Vogelonderzoek Nederland (www.sovon.nl) and Subito.it (www.subito.it).

For a complete list of changes, see the “Release Notes” section below.

Incremental backup

Incremental backup is a kind of full periodic backup which saves only data changes from the latest full backup available in the catalogue for a specific PostgreSQL server. The main goals of incremental backup in Barman are:

  • Reduce the time taken for the full backup process
  • Reduce the disk space occupied by several periodic backups (data deduplication)

This feature heavily relies on rysnc and hard links, which must be therefore supported by both the underlying operating system and the file system where the backup data resides.

The main concept is that two periodic base backups will share those files that have not changed, leading to relevant savings in disk usage. This is particularly true of VLDB contexts and, more in general, of those databases containing a high percentage of read-only historical tables.

Barman implements incremental backup through a global/server option, called reuse_backup, that transparently manages the barman backup command. Behaviour can also be changed at runtime through the --reuse-backup runtime option for the barman backup command.

Links

Release notes

  • Incremental base backup implementation through the reuse_backup global/server option. Possible values are off (disabled, default), copy (preventing unmodified files from being transferred) and link (allowing for deduplication through hard links).
  • Store and show deduplication effects when using reuse_backup=link.
  • Added transparent support of pg_stat_archiver (PostgreSQL 9.4) in check, show-server and status commands.
  • Improved administration by invoking WAL maintenance at the end of a successful backup.
  • Changed the way unused WAL files are trashed, by differentiating between concurrent and exclusive backup cases.
  • Improved performance of WAL statistics calculation.
  • Treat a missing pg_ident.conf as a WARNING rather than an error.
  • Refactored output layer by removing remaining yield calls.
  • Check that rsync is in the system path.
  • Include history files in WAL management.
  • Improved robustness through more unit tests.
  • Fixed bug #55: Ignore fsync EINVAL errors on directories.
  • Fixed bug #58: retention policies delete.

Download

About

Barman (Backup and Recovery Manager) is an open source administration tool for disaster recovery of PostgreSQL servers written in Python. It allows your organisation to perform remote backups of multiple servers in business critical environments and help DBAs during the recovery phase. Barman’s most requested features include backup catalogues, incremental backup, retention policies, remote backup and recovery, archiving and compression of WAL files and backups.

Barman is distributed under GNU GPL 3.