Crie o script estabelece_comunicacao_replicacao.sh, com o seguinte conteúdo, e rode no servidor master:
#!/bin/sh
slonik <<_EOF_
#--
# define the namespace the replication system uses in our example it is
# slony_example
#--
cluster name = $CLUSTERNAME;
#--
# admin conninfo's are used by slonik to connect to the nodes one for each
# node on each side of the cluster, the syntax is that of PQconnectdb in
# the C-API
# --
node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER';
node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST user=$REPLICATIONUSER';
#--
# init the first node. Its id MUST be 1. This creates the schema
# _$CLUSTERNAME containing all replication system specific database
# objects.
#--
init cluster ( id=1, comment = 'Master Node');
#--
# Slony-I organizes tables into sets. The smallest unit a node can
# subscribe is a set. The following commands create one set containing
# all 4 pgbench tables. The master or origin of the set is node 1.
#--
create set (id=1, origin=1, comment='All pgbench tables');
set add table (set id=1, origin=1, id=1, fully qualified name = 'public.tabela1', comment='Descrição Tabela 1');
set add table (set id=1, origin=1, id=2, fully qualified name = 'public.tabela2', comment='Descrição Tabela 2');
set add table (set id=1, origin=1, id=3, fully qualified name = 'public.tabela3', comment='Descrição Tabela 3');
set add table (set id=1, origin=1, id=4, fully qualified name = 'public.tabela4', comment='Descrição Tabela 4', key = serial);
#--
# Create the second node (the slave) tell the 2 nodes how to connect to
# each other and how they should listen for events.
#--
store node (id=2, comment = 'Slave node');
store path (server = 1, client = 2, conninfo='dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER');
store path (server = 2, client = 1, conninfo='dbname=$SLAVEDBNAME host=$SLAVEHOST user=$REPLICATIONUSER');
store listen (origin=1, provider = 1, receiver =2);
store listen (origin=2, provider = 2, receiver =1);
_EOF_
Depois sete a permissão:
# chmod u+x estabelece_comunicacao_replicacao.sh
Note que é preciso alterar as linhas que contém "set add table" para as tabelas que fazem parte do seu banco.
Agora para estabelecer um canal de comunicação entre os servidor do cluster faça no master:
# slon $CLUSTERNAME "dbname=$MASTERDBNAME user=$REPLICATIONUSER host=$MASTERHOST"
E no slave:
# slon $CLUSTERNAME "dbname=$SLAVEDBNAME user=$REPLICATIONUSER host=$SLAVEHOST"
Nesse ponto a replicação ainda não está acontecendo, para poder dar início à replicação propriamente dita, abra outro terminal (pois o terminal do master que você estava usando estará ocupado com o último comando dado, slon) crie o script replicacao_start.sh com o seguinte conteúdo:
#!/bin/sh
slonik <<_EOF_
# ----
# This defines which namespace the replication system uses
# ----
cluster name = $CLUSTERNAME;
# ----
# Admin conninfo's are used by the slonik program to connect
# to the node databases. So these are the PQconnectdb arguments
# that connect from the administrators workstation (where
# slonik is executed).
# ----
node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER';
node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST user=$REPLICATIONUSER';
# ----
# Node 2 subscribes set 1
# ----
subscribe set ( id = 1, provider = 1, receiver = 2, forward = no);
_EOF_
Depois sete a permissão:
# chmod u+x replicacao_start.sh
Então execute esse script no servidor master e pronto! Os dados começarão a ser copiados e a replicação estará acontecendo.