From: | Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com> |
---|---|
To: | Gustavo Vaccaro <gustavojosevaccaro(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)lists(dot)postgresql(dot)org |
Subject: | Re: Replicacion con Postgres 10 |
Date: | 2017-10-25 07:09:33 |
Message-ID: | CAJGNTeNU+B2trw1wpYBQH64QrTy7pyUxKmxw4bm=1xO1ea+YgA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2017-10-24 7:06 GMT-05:00 Gustavo Vaccaro <gustavojosevaccaro(at)gmail(dot)com>:
>
> Hola,
>
> ayer hice una simulacion de replicacion con Postgres 10.
> Instale dos server (virtuales) con sus respectivos postgres, a uno le puse una base de datos con datos cargados y a la otra solo la
> estructura (sin datos).
> Hice todos los pasos para crear la replicacion (publicacion y suscripcion) y funciono perfecto.
> Me asombro lo facil que es y lo bien que funciona.
>
que bueno que opines eso, se lo haré saber a mis compañeros de
2ndQuadrant que desarrollaron esta característica
> Todos los cambios son replicados sin problemas hasta que force un conflicto.
> Di de alta un registro en la base de datos que tiene la suscripcion y despues lo di de alta en la publicacion.
> El log me indica que la llave ya existe (el registro existe) y por lo tanto se detiene la replicacion.
>
> Mis preguntas son:
>
> 1) ¿Tengo alguna funcion o consulta que me permita detectar los conflictos sin mirar el log?
>
no, la replicación lógica no pretende permitir escrituras en el origen
y en la réplica. para eso existe BDR que provee replicación
bi-direccional y resolución de conflictos
> 2) ¿Como hago para que continue la replicacion?
> La respuesta simple es eliminar el registro que de la suscripcion.
> Pero queria ver si se podia saltear la instruccion o algo parecido.
> Encontre esta funcion pg_replication_origin_advance(node_name text, lsn pg_lsn) pero no se como pasar el parametro lsn.
> Probe con este formato pg_replication_origin_status('tdf'::text, '0/31CFECD8'::pg_lsn) y me tira el error
> "no existe la función pg_replication_origin_status(text, pg_lsn)"
>
eso es porque pg_replication_origin_status es una vista, no una función. prueba:
select * from pg_replication_origin_status;
--
Jaime Casanova www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | lan cop | 2017-10-25 08:24:48 | Quitenme de la lista |
Previous Message | Gustavo Vaccaro | 2017-10-24 12:06:45 | Replicacion con Postgres 10 |