Bom... analisando um pouquinho melhor achei outra coisa errada;

"node 3 admin conninfo = 'dbname=$DB2
host=$H2 user=$U password=$SENHA port=5573';"

Repare que vc colocou como host "H2" ao invés de "H3".

Para dar certo o que vc quer fz, tudo o que for feito para o primeiro slave 
deverá ser feito igualmente para os outros conforme suas características 
próprias.

Tenho um exemplo aqui e me guio sempre por ele. Dá uma olhada:

$SLONIK <<_EOF_
        # 
----------------------------------------------------------------------------------------
        # Define o nome do cluster de replicação

        cluster name = $CLUSTERNAME;

        # 
----------------------------------------------------------------------------------------
        # As configurações "admin conninfo" são usadas pelo slonik para 
conectar aos nodos

        node 1 admin conninfo = 'dbname=$MASTERDBNAME user=$REPLICATIONUSER 
password=$PASSWORD host=$MASTERHOST';
        node 2 admin conninfo = 'dbname=$SLAVEDBNAME user=$REPLICATIONUSER 
password=$PASSWORD host=$SLAVEHOST1';
        node 3 admin conninfo = 'dbname=$SLAVEDBNAME user=$REPLICATIONUSER 
password=$PASSWORD host=$SLAVEHOST2';

        # 
----------------------------------------------------------------------------------------
        # Inicia o primeiro nodo, o qual deve ser "1". Isso cria o schema 
_$CLUSTERNAME contendo todos os objetos específicos
        # do sistema de replicação

        init cluster ( id=1, comment = 'Nodo Master');

        # 
----------------------------------------------------------------------------------------
 
        # O Slony-I organiza tabelas dentro de conjuntos. 

        # CREATE SET 

        # ID = ival -> ID do conjunto (set) a ser criado
        # ORIGIN = ival -> Nodo de origem inicial do conjunto
        
        create set (id=1, origin=1, comment='Todas as tabelas');

        # SET ADD TABLE 

        # SET ID = ival -> ID do nodo em que a tabela será adicionada
        # ORIGIN = ival -> Nó de origem para este conjunto. 
        # ID = ival -> ID único da tabela.
        # FULLY QUALIFIED NAME = 'string' -> esquema.tabela

        set add table (set id=1, origin=1, id=1, fully qualified name = 
'public.tb_1', comment='tabela 1');
        set add table (set id=1, origin=1, id=2, fully qualified name = 
'public.tb_2', comment='tabela 2');
        set add table (set id=1, origin=1, id=3, fully qualified name = 
'public.tb_3', comment='tabela 3');
        set add table (set id=1, origin=1, id=4, fully qualified name = 
'public.tb_4', comment='tabela 4');
        
        # 
----------------------------------------------------------------------------------------
 
        # Criação do segundo nodo (slave1) diz aos dois nodos como se conectar 
ao outro e como eles devem ouvir para eventos

        # STORE NODE 

        # ID = ival -> O único, imutável ID numérico do novo nodo. O ID é 
imutável por ser usado como base para comunicação
        # entre os nodos.
        # COMMENT = 'description' -> Um texto descritivo adicionado à entrada 
do nodo na tabela sl_node
        # EVENT NODE = ival -> O ID do nodo usado para criar a configuração de 
evento que notifica a todos os nodo existentes
        # sobre o novo nodo.

        store node (id=2, comment = 'Nodo slave 1', event node=1);

        # STORE PATH

        # SERVER = ival -> ID do nodo de banco de dados para conectar.
        # CLIENT = ival -> ID do nodo do daemon de replicação se 
conectar.                      
        # CONNINFO = string -> PQconnectdb() argumento para estabelecer a 
conexão.
        # CONNRETRY = ival -> Número em segundos para aguardar outra tentativa 
para conectar é feita em caso servidor
        # indisponível. Padrão é 10.    

        store path (server = 1, client = 2, conninfo='dbname=$MASTERDBNAME 
user=$REPLICATIONUSER password=$PASSWORD host=$MASTERHOST');
        store path (server = 2, client = 1, conninfo='dbname=$SLAVEDBNAME 
user=$REPLICATIONUSER password=$PASSWORD host=$SLAVEHOST1');
        
        # Criação do terceiro nodo (slave2)
        store node (id=3, comment = 'Nodo slave 2', event node=1);
        store path (server = 1, client = 3, conninfo='dbname=$MASTERDBNAME 
user=$REPLICATIONUSER password=$PASSWORD host=$MASTERHOST');
        store path (server = 3, client = 1, conninfo='dbname=$SLAVEDBNAME 
user=$REPLICATIONUSER password=$PASSWORD host=$SLAVEHOST2');
        
_EOF_




--- Em seg, 17/5/10, [email protected] <[email protected]> 
escreveu:

De: [email protected] <[email protected]>
Assunto: [pgbr-geral] Slony com 3 Slaves
Para: [email protected]
Data: Segunda-feira, 17 de Maio de 2010, 17:17

Olá a todos!
Talvez possa me ajudar.
Consegui fazer o slony replicar
master para um slave, porem quando eu fui tentar replicar de um master para 
varios
slaves o terceiro nodo não recebe a replicação.
Abaixo segue a
conf do arquivo que comunica com o cluster.

#!/bin/sh
CLUSTER=sief
#DEFINA AQUI O NOME DO SEU CLUSTER
DB1=sief #NOME DO BANCO DE DADOS DO
COMPUTADOR1
DB2=sief #NOME DO BANCO DE DADOS DO COMPUTADOR2
DB3=sief #NOME DO
BANCO DE DADOS DO COMPUTADOR3
H1=192.168.1.254 #HOSTNAME (NOME DA MAQUINA), DO
COMPUTADOR1
H2=192.168.1.29 #HOSTNAME DO SEGUNDO COMPUTADOR
H3=192.168.10.10  #HOSTNAME DO SEGUNDO COMPUTADOR
U=postgres #USUARIO PARA A
REPLICAÇÃO, PADRÃO: POSTGRES
SENHA=SENHA
slonik
<<_EOF_
cluster name = $CLUSTER;
node 1 admin conninfo = 'dbname=$DB2
host=$H1 user=$U password=$SENHA port=5573';
node 2 admin conninfo = 'dbname=$DB2
host=$H2 user=$U password=$SENHA port=5573';
node 3 admin conninfo = 'dbname=$DB2
host=$H2 user=$U password=$SENHA port=5573';

init cluster (id = 1, comment =
'Cluster Master');

#especifica o set de replicacao
create set (id = 1,
origin = 1, comment = 'objetos replicados');

#tabelas que seram replicadas
set add table(set id=1,origin=1,id=10,full qualified name='public.adm_enroll');

#no escravo e caminho que ele fara, especificar event node !
store node (id
= 3, event node= 1,comment = 'Slave');
store path (server = 1, client = 2,conninfo
= 'dbname=$DB1 host=$H1 port=5573 user=$U password=$SENHA');
store path (server =
2, client = 1,conninfo = 'dbname=$DB2 host=$H2 port=5573 user=$U 
password=$SENHA');
store path (server = 3, client = 1,conninfo = 'dbname=$DB3 host=$H3 port=5573 
user=$U
password=$SENHA');


store listen (origin = 1, provider = 1, receiver =
2);
store listen (origin = 2, provider = 2, receiver = 1);
store listen
(origin = 3, provider = 2, receiver = 1);
Este script eu rodo no servidor, ja nos 2
cliente eu rodo este script de sicronizar abaixo:
#!/bin/sh
CLUSTERNAME=sief
MASTERDBNAME=sief
SLAVEDBNAME=sief
REPLICATIONUSER=postgres
SENHA=SENHA
MASTERHOST=192.168.1.254
SLAVEHOST=192.168.1.29
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 port=5573 user=$REPLICATIONUSER
password=$SENHA';
        node 2 admin conninfo
= 'dbname=$SLAVEDBNAME host=$SLAVEHOST port 5573 user=$REPLICATIONUSER
password=$SENHA';
        # ----
        # Node 2 subscribes set 1
        # ----
        subscribe set ( id = 1, provider = 1,
receiver = 2, forward = no);
_EOF_

Segundo slave:
#!/bin/sh
CLUSTERNAME=sief
MASTERDBNAME=sief
SLAVEDBNAME=sief
REPLICATIONUSER=postgres
SENHA=SENHA
MASTERHOST=192.168.1.254
SLAVEHOST=192.168.10.10
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 port=5573 user=$REPLICATIONUSER
password=$SENHA';
        node 2 admin conninfo
= 'dbname=$SLAVEDBNAME host=$SLAVEHOST port 5573 user=$REPLICATIONUSER
password=$SENHA';
        # ----
        # Node 2 subscribes set 1
        # ----
        subscribe set ( id = 1, provider = 1,
receiver = 2, forward = no);
_EOF_
Alguem sabe o que pode ser? lembrando que
se eu retirar o 3 nodo replica 100%.
-----Anexo incorporado-----

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



      
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a