High Availability

PostgreSQL is widely accepted as the most scalable and stable Open Source database in the industry. It is also known to hold its own against any of the proprietary databases as well. There are a plethora of High Availability options available for every workload and business requirement.

Any of the solutions may be used in conjunction with another solution. Thus you may use Block replication, but also have log shipping for a warm standby. If you need a more customized solution than what is below, do not hesitate to contact us.

Asynchronous Replication

Asynchronous Replication provides a Master->Slave (also known as Origin->Subscriber) model of replication. Asynchronous Replication for PostgreSQL is an excellent option if your business requirements include:

  • Few DDL Changes (or Managed DDL Changes)
  • Read from Slaves
  • Geographically disparate servers
  • Failover or Switchover capability
  • Zero load backups Solutions include Replicator, Londiste, and Slony.

Log Shipping

Also known as streaming replication and Point in Time Recovery, log shipping is a great mechanism for creating a Highly Available requirement. Log shipping is the least administrative overhead solution for a number of business requirements including:

  • DDL Replication
  • Zero load backups
  • Failover
  • Geographically disparate servers
  • An existing application cannot be modified
  • No read-only slave requirement Solutions include PITRTools and Walmgr.

Block Replication

Block level replication can be Synchronous or Asynchronous. It provides the lowest level of replication between two (or more) systems. In short it replicates disk blocks as they are modified, over the network the the receiving system. This type of replication is particularly useful for a true HA zero data loss scenario. Consider this option if your business requirements include:

  • Zero data loss
  • No need to read from the slave
  • No want to offload backups
  • Your slave/standby is in the same data center (synchronous) Solutions include DRBD (CMD only supports Linux for this option).