The first step toward making a database highly available is setting up replication to another server, which could either be within the same or a different data center. While it is fairly difficult to see such replication methods included for free with some of the commercial databases that are available, you do not have to pay any license fees to set up replication with PostgreSQL. The community PostgreSQL software includes it by default. You may refer to Chapter 4, Advanced Replication Techniques to learn how to set up replication in PostgreSQL.
Now that we have replication set up, how do we ensure that we can avoid downtime for an application by letting a failover happen automatically? Are there any open source tools that can be highly trusted, and how do we configure them the right way? All these questions will be answered in this chapter...