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.
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?
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)"
Saludos