La versión de logical replication de v10 aún no implementa estrategias de
resolución de conflictos, para ello o te esperas a la v11 o usas pglogical
que sí lo tiene, a parte de más funcionalidades que con el tiempo pasarán
al core de postgresql


El 25 oct. 2017 12:35, "Gustavo Vaccaro" <gustavojosevacc...@gmail.com>
escribió:

> Jaime,
>
> gracias por tus comentarios.
>
> Hice tantas pruebas que no me di cuenta que estaba trabajando con una
> vista.
>
> Saludos
>
> Gustavo J. Vaccaro
> http://www.gjv.com.ar
>
> El 25/10/2017 a las 4:09, Jaime Casanova escribió:
>
> 2017-10-24 7:06 GMT-05:00 Gustavo Vaccaro <gustavojosevacc...@gmail.com> 
> <gustavojosevacc...@gmail.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;
>
>
>
>
>
>
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>  Libre
> de virus. www.avg.com
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
> <#m_-8306565589034680803_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>

Reply via email to