Replicación lógica para fragmentación
Utilice la replicación lógica PUBLICATION/SUBSCRIPTION para mover tablas entre clústeres y facilitar actualizaciones de versiones principales.
Replicación lógica para fragmentación es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.
Replicación lógica frente a física
La replicación física replica los BYTES del WAL: todo el clúster y la misma versión. La lógica replica FILAS: tablas seleccionadas y, posiblemente, distintas versiones de PG:
- Suscribirse a tablas específicas
- Replicar de PG 14 a PG 16 (¡para actualizar!)
- Comunicación bidireccional o multi-master, con precaución
- Permite esquemas diferentes
Configuración: publicador
Marque la instancia principal como publicador:
-- postgresql.conf
wal_level = logical
-- Create a publication:
CREATE PUBLICATION pub_orders FOR TABLE orders, order_items;
-- Or all tables in the database:
CREATE PUBLICATION pub_all FOR ALL TABLES;Configuración: suscriptor
En la base de datos de destino:
CREATE SUBSCRIPTION sub_orders
CONNECTION 'host=primary port=5432 user=repl dbname=mydb'
PUBLICATION pub_orders;Sincronización inicial
La suscripción realiza una copia inicial de todas las tablas coincidentes y después transmite los cambios. El esquema de destino debe coincidir con el de origen.
Caso de uso: actualización de versión principal
La replicación lógica es la forma moderna de actualizar Postgres con un tiempo de inactividad mínimo:
- Crear el clúster de PG16
- Replicar lógicamente de PG14 a PG16
- Cambiar las aplicaciones cuando PG16 se haya puesto al día
- Apagar PG14
Caso de uso: dividir una base de datos
Para dividir una base de datos enorme en varias más pequeñas:
- Publicar solo las tablas que necesita un nuevo servicio
- Suscribirse desde la nueva base de datos
- Migrar las escrituras después de que se ponga al día
Caso de uso: réplicas heterogéneas
Replicar en una réplica de lectura con índices diferentes o en un Postgres de almacén de datos con columnas adicionales para informes.
Conflictos
La replicación lógica no resuelve los conflictos automáticamente. Si la misma fila se actualiza en ambos lados, el suscriptor se detiene con un error. Evítelo de estas formas:
- Escribir únicamente en uno de los lados
- Usar REPLICA IDENTITY FULL para obtener mejores diagnósticos
- Resolver los conflictos manualmente y reiniciar la suscripción
Cambios de esquema
DDL NO se replica. Aplique manualmente los cambios de esquema en ambos lados, normalmente primero en el suscriptor y después en el publicador. También puede usar la extensión pglogical, que permite replicar DDL.
Replicación parcial
Las versiones modernas de PG permiten definir filtros de filas y listas de columnas para cada publicación:
CREATE PUBLICATION us_only FOR TABLE customers
WHERE (country = 'US');
CREATE PUBLICATION compact FOR TABLE users (id, email);Fragmentación con replicación lógica
Mueva los inquilinos a un fragmento dedicado:
- Crear en el origen una publicación filtrada para un inquilino
- Suscribirse desde el destino
- Cambiar la aplicación al nuevo fragmento
- Eliminar los datos del inquilino en el origen
Rendimiento y retraso
La replicación lógica utiliza un solo hilo por suscripción, en su mayor parte. Los orígenes con un volumen elevado pueden beneficiarse de varias publicaciones y suscripciones, o de herramientas de terceros como pglogical / Debezium.
Resumen
La replicación lógica permite transmitir a nivel de fila.
- Entre versiones y para tablas parciales
- Actualizaciones principales con un tiempo de inactividad mínimo
- La resolución de conflictos es responsabilidad de USTED
- El DDL no se replica
Comprobación rápida
Necesita actualizar de PostgreSQL 14 a 16 con un tiempo de inactividad mínimo. ¿Qué tipo de replicación le ayuda?
Preguntas frecuentes
¿La lección «Replicación lógica para fragmentación» es gratis?
Sí — el texto completo de «Replicación lógica para fragmentación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Replicación lógica para fragmentación»?
Utilice la replicación lógica PUBLICATION/SUBSCRIPTION para mover tablas entre clústeres y facilitar actualizaciones de versiones principales. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar SQL Academy?
No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Replicación lógica para fragmentación»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de SQL Academy?
Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Replicación en streaming y WAL
- Replicación lógica para fragmentación
- Failover y elección del líder (Patroni, Stolon)
- Réplicas de lectura y enrutamiento de conexiones