Re: Replicacion con Postgres 10

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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