On Wed, Aug 2, 2023 at 10:27 AM Fernando Monjes <ing.bo...@gmail.com> wrote: > > Buenas días comunidad > > Favor su ayuda con una situación de replicación que tengo, voy a explicar el > contexto: > > Tengo que hacer upgrade de Postgresql en una plataforma aws rds postgresql de > 13.10 a 15.2, este ambiente mantiene replicacion logica bidireccional con un > ambiente on-premise postgresql 15.3, el procedimiento que utilice fue el > siguiente para el upgrade en RDS: > > Procedimiento: > > 1.-Detener todas las Subscripciones de AWS y Onpremise > 2.-Eliminar todos los slots de las subscripciones > 3.-Crear el grupo de parámetro en RDS Amazon para la versión mayor y > habilitar los siguientes parámetros > rds.logical_replication = 1 > max_logical_replication_workers = 10 > 4.- Generar Upgrade RDS AMAZON de version 13.10 a 15.2 (compatible según > matriz) > 5.- Crear los slots de las subscripciones (eliminados en punto 2) > 6.- Activar las subscripciones de aws y onpremise y refrescar las > publicaciones > 7.- Validar mediante select informacion de las tablas replicadas > > Al termino de este procedimiento las replicas que van de RDS a onpremise > ningun problema pero las réplicas que van de onpremise a RDS se duplican los > datos como si fuera una replica de cero , lo que me llama la atención es que > en el origen (onpremise) se genera un slot SNAPSHOT > > log: > STATEMENT: CREATE_REPLICATION_SLOT "pg_16414_sync_16427_7262054625870888800" > LOGICAL pgoutput (SNAPSHOT 'use') > > si lo consulto a la vista pg_replication_slots este slot > (pg_16414_sync_16427_7262054625870888800) aparece en estado "false" > > No entiendo por que se genera ese nuevo slot y porque se me generar > duplicidad de datos >
Saludos, Espero que hayas podido solucionar este problema, pero si no has podido aún... El gran problema aquí es que estás usando RDS y eso parece tener una versión modificada, al menos rds.logical_replication no es un parámetro de postgres. - Puedes mostrar los comandos exactos que usaste en cada lado (editando IPs y otros datos sensibles claro)? - tienes PK en tus tablas? no deberían duplicarse los datos si tuvieras un PK, mas bien te daría un error de conflicto quizá. Ese slot adicional que ves lo usa para copiar los datos y es causado por que en el comando que usaste para crear la subscripción incluiste la opción copy_data en true. -- Jaime Casanova Director de Servicios Profesionales SYSTEMGUARDS - Consultores de PostgreSQL