Standby for Postgresql Windows

Creating a hot standby for Postgresql

Postgresql tips

How to setup a fully redundant standby for Postgresql

To get started you need two machines that are the same architecture, ie 64 bit, with the same version of Postgres installed, including same Postgres architecture.

1. On Master – In pgAdmin run:


CREATE USER replicator REPLICATION LOGIN ENCRYPTED PASSWORD 'mypassword';

2. On Master – In pgAdmin, edit the postgresql.conf and set the following:


wal_level = hot_standby

max_wal_senders = 3

checkpoint_segments = 8

wal_keep_segments = 8

3. On Master – In pgAdmin, edit the pg_hba.conf and set the following where 5.6.7.8 is the ip address of the slave:


host replication     replicator     5.6.7.8/32           trust

4. On Master – restart the postgres windows service

5. On Slave – stop the postgres windows service

6. On Slave – open a command prompt and cd to your Postgres directory (c:\program files\Postgresql\9.4) and run:


rd /s “c:\program files\Postgresql\9.4\data”

7. On Slave – open a command prompt and cd to your Postgres directory (c:\program files\Postgresql\9.4) and run where 1.2.3.4 is the ip of the Master:


pg_basebackup -h 1.2.3.4 -D “c:\program files\Postgresql\9.4\data” -U replicator -v –P –X stream

8. On slave – In pgAdmin, edit the postgresql.conf and set the following:


hot_standby = on

9. On slave – create a text file (c:\program files\Postgresql\9.4\data\recovery.conf) with the following contents where 1.2.3.4 is the ip of the Master:


standby_mode = 'on'primary_conninfo = 'host=1.2.3.4 port=5432 user=replicator password=mypassword'trigger_file = 'c:\temp\postgresql.trigger'

10. On Slave – start the postgres windows service

Master and Slave should now be in sync. Update Master DB and confirm that the Slave is updated as well.

Leave a Reply

Your email address will not be published. Required fields are marked *