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
