Chapter 47. Decodificación lógica

Table of Contents

47.1. Ejemplos de decodificación lógica
47.2. Conceptos de decodificación lógica
47.2.1. Decodificación lógica
47.2.2. Ranuras de replicación
47.2.3. Sincronización de ranuras de replicación
47.2.4. Plugins de salida
47.2.5. Instantáneas exportadas
47.3. Interfaz del protocolo de replicación en flujo
47.4. Interfaz SQL de decodificación lógica
47.5. Catálogos del sistema relacionados con la decodificación lógica
47.6. Plugins de salida de decodificación lógica
47.6.1. Función de inicialización
47.6.2. Capacidades
47.6.3. Modos de salida
47.6.4. Devoluciones de llamada del plugin de salida
47.6.5. Funciones para generar salida
47.7. Escritores de salida de decodificación lógica
47.8. Soporte de replicación síncrona para la decodificación lógica
47.8.1. Resumen
47.8.2. Advertencias
47.9. Transmisión de transacciones grandes para la decodificación lógica
47.10. Soporte de confirmación en dos fases para la decodificación lógica

PostgreSQL proporciona una infraestructura para transmitir las modificaciones realizadas a través de SQL a consumidores externos. Esta funcionalidad se puede utilizar para una variedad de propósitos, incluyendo soluciones de replicación y auditoría.

Los cambios se envían en flujos identificados por ranuras de replicación lógica.

El formato en el que se transmiten esos cambios está determinado por el plugin de salida utilizado. Se proporciona un plugin de ejemplo en la distribución de PostgreSQL. Se pueden escribir plugins adicionales para ampliar la oferta de formatos disponibles sin modificar ningún código del núcleo. Cada plugin de salida tiene acceso a cada nueva fila individual producida por un INSERT y a la nueva versión de fila creada por un UPDATE. La disponibilidad de las versiones anteriores de las filas para UPDATE y DELETE depende de la identidad de réplica configurada (consulta la REPLICA IDENTITY).

Los cambios se pueden consumir utilizando el protocolo de replicación en flujo (consulta la Section 54.4 y la Section 47.3), o llamando a funciones a través de SQL (consulta la Section 47.4). También es posible escribir métodos adicionales para consumir la salida de una ranura de replicación sin modificar el código del núcleo (consulta la Section 47.7).