Skip site navigation (1) Skip section navigation (2)

Re: Slony: fatal error

From: Cesar A <cesar(dot)carbonara(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Slony: fatal error
Date: 2010-10-27 19:57:03
Message-ID: AANLkTi=zk9aMRQYQ_u_xtkqBGrE-4PjiUQS-c=i5TVyH@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Bueno, tal parece que tiene que ver con la definición de la PK...

Estoy haciendo algunas pruebas, ya pasé... sigo con mi agite, y comento

El 28 de octubre de 2010 11:26, Cesar A <cesar(dot)carbonara(at)gmail(dot)com>escribió:

> Saludos
>
> Tengo que implementar un sistema de replicación. Aún estamos definiendo,
> pero en principio va 1 principal en la sede, 2 esclavos en la sede (comor
> espaldos), 2 en 2 sucursales (1 en cada una).
>
> He ido mirando y probando a partir de un material de Alvaro sobre Slony, y
> la documentación oficial. Hasta ahora, probé con 2 tablas y funcionó, pero
> cuando metí otra me tiró error. El scritp
>  sh local2.sh :
> #!/bin/sh
> slonik <<_EOF_
>
>     cluster name = encuentro;
>     node 1 admin conninfo = 'dbname=sir user=slony password=slony';
>     node 2 admin conninfo = 'host=192.168.0.12 dbname=sir user=slony
> password=slony';
>
>     create set (id=1, origin=1, comment='tablas del Encuentro Código
> Político');
>     set add table (set id=1, origin=1, id=1, full qualified
> name='public.region');
>     set add sequence (set id=1, origin=1, id=1, full qualified
> name='public.region_reg_001_seq');
>
>     set add table (set id=1, origin=1, id=2, full qualified
> name='public.estado');
>     set add sequence (set id=1, origin=1, id=2, full qualified
> name='public.estado_est_001_seq');
>
>     set add table (set id=1, origin=1, id=3, full qualified
> name='public.municipio');
>     set add sequence (set id=1, origin=1, id=3, full qualified
> name='public.municipio_id_seq');
>
>     echo 'Se ha creado el set 1 con la tabla de Region y Estado';
>
>     subscribe set (id=1, provider=1, receiver=2, forward=yes);
>     echo 'El nodo 2 esta suscrito al set 1, proveedor es nodo 1';
>
> _EOF_
>
> El error:
> <stdin>:6: PGRES_FATAL_ERROR select "_encuentro".storeSet(1, 'tablas del
> Encuentro Código Político');  - ERROR:  llave duplicada viola restricción de
> unicidad «sl_set-pkey»
> CONTEXT:  sentencia SQL: «insert into "_encuentro".sl_set (set_id,
> set_origin, set_comment) values ( $1 ,  $2 ,  $3 )»
> PL/pgSQL function "storeset" line 13 at SQL statement
>
> Con las tablas region y estado, funciona perfecto! al meter municipios me
> salta el erro. Sin emabrgo, al tabla municipios tiene tan sólo 77 registros.
> He hecho una consulta y no hay valores nulos ni duplicados, de hecho, la
> estructura:
> CREATE TABLE municipio (
>     reg_001 character varying(2) NOT NULL,
>     est_001 character varying(2) NOT NULL,
>     mun_001 character varying(2) NOT NULL,
>     mun_002 character varying(35) NOT NULL,
>     id integer NOT NULL
> );
>
>
> ALTER TABLE public.municipio OWNER TO carbonara;
>
> CREATE SEQUENCE municipio_id_seq
>     INCREMENT BY 1
>     NO MAXVALUE
>     NO MINVALUE
>     CACHE 1;
>
> ALTER TABLE public.municipio_id_seq OWNER TO carbonara;
>
> ALTER SEQUENCE municipio_id_seq OWNED BY municipio.id;
>
> ALTER TABLE municipio ALTER COLUMN id SET DEFAULT
> nextval('municipio_id_seq'::regclass);
>
> ALTER TABLE ONLY municipio
>     ADD CONSTRAINT municipio_pkey PRIMARY KEY (id);
>
> ALTER TABLE ONLY municipio
>     ADD CONSTRAINT municipio_ukey UNIQUE (reg_001, est_001, mun_001);
>
> ALTER TABLE ONLY municipio
>     ADD CONSTRAINT estado_fkey FOREIGN KEY (reg_001, est_001) REFERENCES
> estado(reg_001, est_001) ON UPDATE CASCADE ON DELETE RESTRICT;
>
> Algún comentario?
> --
> --
> Sí no eres parte de la solución... eres parte del problema.
> Les Luthiers
> --
> ... y no dejes de leer:
> Netiqueta: Conjunto de reglas que regulan la conducta del usuario en
> internet
> http://es.wikibooks.org/wiki/Netiquette
> --
> Cesar A. Carbonara R.
> C.I. Nº V.11.952.572
> --
> Usuario Linux 377997
> www.gulmer.org.ve
>
>


-- 
--
Sí no eres parte de la solución... eres parte del problema.
Les Luthiers
--
... y no dejes de leer:
Netiqueta: Conjunto de reglas que regulan la conducta del usuario en
internet
http://es.wikibooks.org/wiki/Netiquette
-- 
Cesar A. Carbonara R.
C.I. Nº V.11.952.572
--
Usuario Linux 377997
www.gulmer.org.ve

In response to

Responses

pgsql-es-ayuda by date

Next:From: Horacio MirandaDate: 2010-10-27 22:38:35
Subject: Re: problema con trigger
Previous:From: masc68@gmail.comDate: 2010-10-27 18:28:33
Subject: Re: Error en funcion

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group