Binary Replication Tools

From PostgreSQL wiki

(Difference between revisions)
Jump to: navigation, search
(Barman)
(pg-rman)
Line 84: Line 84:
 
= pg-rman =
 
= pg-rman =
  
[http://code.google.com/p/pg-rman/ pg-rman]
+
[http://code.google.com/p/pg-rman/ pg-rman] [https://github.com/selenamarie/pg_replication_demo/tree/master/pgrman Simple demo for pg_rman setup]
 +
 
 +
Summary of features:
 +
* Online backup and recovery, including backup from a replica
 +
* Archive management and restore
 +
* .ini configuration file
 +
* Simple command-line options
 +
 
 +
Install notes:
 +
* Written in C, install with 'make USE_PGXS=1'
 +
* On Ubuntu/Debian, installs in non-default bin directory
 +
* Commands are simple, manages WAL archive as well as backups

Revision as of 21:59, 29 December 2012

Contents

Purpose

Compare binary replication tools for PostgreSQL for features and ease of use.

The features these tools help automated include:

  • Managing binary backups (create, track, restore)
  • Managing creation of replicas
    • Streaming replication
    • Cascaded replication
    • WAL-shipping replication
  • Monitoring of replication delay
  • Automated failover
  • Automated "following" of a new master by secondary replicas

My goal is to classify and differentiate the various tools for easier selection and fit to purpose.

OmniPITR

OmniPITR Demo of a simple replication setup with OmniPITR

Summary of Features:

  • Creating PITR backups from Master or Slave
  • Restoring a PITR backup for DR
  • Creating replicas (by untarring backups)
  • Monitoring of replicas
  • Supports 'pause removal' of WAL during a backup (nice!)
  • PostgreSQL license

Install notes:

  • No packaging, perl
  • No documented support for streaming replication
  • Uses an odd format for omnipitr logfile naming
  • No configuration file option (instead of using long command-line options)
  • Supported on all Linux, Solaris variants

repmgr

repmgr Demo of a simple setup with repmgr

Supported features:

  • Setting up new replicas/hot_standby with streaming replication (makes recovery.conf itself)
  • Making base backups
  • Failover (automated, or not, including redirecting replicas to connect to a new master after failover)
  • Lag monitoring (repmgrd)
  • A "witness" DB server for monitoring (typically on a replica)
  • License: GPLv3

Install notes:

  • Written in C
  • Installs like a typical UNIX utility out of postgresql/contrib source tree (make USE_PGXS=1; make USE_PGXS=1 install)
  • Developed on Debian systems, so support for package is present. Did not find an Ubuntu package for repmgr, however.
  • Detailed docs are in the README for installing on many Linux platforms
  • Doesn't appear to be supported on Mac OS X

WAL-E

WAL-E

Barman

pgbarman Demo setup for pgbarman

Summary of features:

  • Creates base backups
  • Uses SSH as transport for backup, and easy to change usernames and connection info in a config file
  • Command-line use is easy to setup
  • Restore is easy to automate for creating replicas, although not explictly supported in the documentation
  • GPLv3

Install notes:

  • Had a strange dependency problem with 9.1 on Ubuntu Precise, so installed from source
  • Missing dep for argcomplete, noted in README in demo repo
  • written in Python

Skytools / walmgr

Skytools

pg-rman

pg-rman Simple demo for pg_rman setup

Summary of features:

  • Online backup and recovery, including backup from a replica
  • Archive management and restore
  • .ini configuration file
  • Simple command-line options

Install notes:

  • Written in C, install with 'make USE_PGXS=1'
  • On Ubuntu/Debian, installs in non-default bin directory
  • Commands are simple, manages WAL archive as well as backups
Personal tools