This tool makes it easy to setup PostgreSQL Streaming Replication between a two server cluster by automating the configuration.
Only tested on Ubuntu 10.04, but should work elsewhere as they are just shell scripts.
Make sure you have satisfied the prerequisites (see below).
On the master server:
# Need to run this as postgres user sudo su postgres ./configure_master.sh
Then, on the slave server:
# Need to run this as postgres user sudo su postgres ./configure_slave.sh
You need to have Postgresql 9.X installed. If you are running 8.4 on Ubuntu 10.04, you can upgrade:
# This needs to be done on both master and slave # First remove postgresql 8.4 (warning: this will wipe out existing dbs) sudo aptitude purge postgresql-8.4 sudo apt-get install python-software-properties # Add the repo that contains the backport sudo add-apt-repository ppa:pitti/postgresql sudo apt-get update sudo apt-get install postgresql-9.1 libpq-dev postgresql-contrib-9.1 # libpq is required for the standby servers to connect to master for streaming replication # postgresql-contrib is for the pg_archivecleanup command
You will need to allow passwordless ssh access for the postgres user from master to the slave:
# On the master sudo su postgres # Generate ssh key (if one doesn't already exist) ssh-keygen -t dsa cat ~/.ssh/id_dsa.pub # Copy the public key over to the slave ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@<REPLACEWITH_slave_ip> # Alternatively, you can manually paste the public key into the `~/.ssh/authorized_keys` file on the slave. # Verify it worked ssh <REPLACEWITH_slave_ip> exit