====== Replication PGSQL ======
==== Building PGsQL ====
./configure --prefix=/usr/local/pg-9.0.3 --with-openssl --with-ossp-uuid --with-perl
NOTE : Use **//--with-pgport=5435//** if you want to hardcode port.
==== postgresql.conf ====
listen_addresses = '*'
port = 5435 #### Only Define if you running on non default port.
escape_string_warning = off
shared_buffers = 8192MB
temp_buffers = 16MB
wal_level = hot_standby
archive_mode = on
archive_command = 'rsync -a /usr/local/pg-9.0.3/Archive/%p :Archive/%f'
max_wal_senders = 5 ####( this setting for 1 slave can connect with Master)
wal_keep_segments = 32
lc_messages = 'en_US.UTF-8'
lc_monetary = 'en_US.UTF-8'
lc_numeric = 'en_US.UTF-8'
lc_time = 'en_US.UTF-8'
default_text_search_config = 'pg_catalog.english'
ssl = on # (change requires restart)
ssl_ciphers = 'SSLv3:+HIGH:+MEDIUM:!SSLv2:!ADH:!LOW:!EXP:!aNULL:!eNULL:@STRENGTH' # allowed SSL ciphers
Setup access rule.
#Replication Trust
hostssl replication all /32 trust
Postgres restart on Master
bin/pg_ctl -p bin/postmaster -D data -l pgstartup.log start
bin/pg_ctl -p bin/postmaster -D data -l pgstartup.log stop
Sync current data over Rsync.
bin/psql -c "SELECT pg_start_backup('label', true)"
rsync -av data/ :standby/ --exclude postmaster.pid
bin/psql -c "SELECT pg_stop_backup()"
==== Recovery.conf ====
standby_mode = 'on' # to enable the standby (read-only) mode.
primary_conninfo = 'host= port=5432 user=postgres'
# primary_conninfo = 'host=127.0.0.1 port=5436 user=postgres'
# to specify a connection info to the master node.
trigger_file = '/var/lib/pgsql/tmp/pg_failover_trigger'
# to specify a trigger file to recognize a fail over.
restore_command = 'cp /var/lib/pgsql/Archive/%f "%p"'
# to specify a recovery command.
archive_cleanup_command = '/usr/local/pg-9.0.3/bin/pg_archivecleanup -d /usr/local/pg-9.0.3/Archive %r 2>>pg_log/cleanup.log'
http://ketan.lithiumfox.com/doku.php?id=postgresql_replication_monitor