Slony: fatal error

From: Cesar A <cesar(dot)carbonara(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Slony: fatal error
Date: 2010-10-27 15:56:01
Message-ID: AANLkTim_40p=acr-Qz3+y0p4LP4xKRAOiKJCFF2HmuwP@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message eduardo reyes 2010-10-27 17:18:44 Re: Error en funcion
Previous Message Alvaro Herrera 2010-10-27 15:14:17 Re: analizar perfomance en produccion