Replicación lógica
PostgreSQL 10 introduce la replicación lógica nativa, que usa un modelo de publicación/suscripción, por lo que podemos crear publicaciones en el origen (o publicador) y suscripciones en el destino (o suscriptor). Para más detalles al respecto, consulte la documentación de PostgreSQL documentación.
En este capítulo, usaremos un clúster de 2 nodos para demostrar la replicación lógica
nativa de PostgreSQL 10. Tenga en cuenta que en cada instancia de PostgreSQL necesita
configurar wal_level = logical y también asegurarse de ajustar el archivo pg_hba.conf
para conceder acceso a replication entre los 2 nodos.
Creación de un entorno de prueba
Configure dos instancias de PostgreSQL 10+ como prefiera (Docker, una máquina virtual, o incluso dos bases de datos en la misma máquina) y configure los ajustes anteriores en cada una.
Conexión a ambos nodos
Usemos OmniDB para conectarnos a ambos nodos de PostgreSQL. Primero, complete la información de conexión en la cuadrícula de conexiones:

Luego seleccione ambas conexiones. Observe cómo OmniDB entiende que está conectado a PostgreSQL 10 y habilita un nuevo nodo en la vista de árbol de la conexión actual: se llama Logical Replication (Replicación lógica). Dentro de él, podemos ver Publications (Publicaciones) y Subscriptions (Suscripciones).

Creación de una tabla de prueba en ambos nodos
En ambos nodos, cree una tabla como esta:
CREATE TABLE customers (
login text PRIMARY KEY,
full_name text NOT NULL,
registration_date timestamptz NOT NULL DEFAULT now()
)

Creación de una publicación en la primera máquina
Dentro del nodo de conexión, expanda el nodo Logical Replication, luego haga clic
derecho en el nodo Publications, y elija la acción Create Publication.
OmniDB abrirá una pestaña con una plantilla SQL con el comando CREATE PUBLICATION listo
para que haga algunos ajustes y lo ejecute:

Tras ajustar y ejecutar el comando, puede hacer clic derecho de nuevo en el nodo Publications y hacer clic en la acción Refresh. Verá que se crea un nuevo nodo con el mismo nombre que dio a la publicación. Al expandir este nodo, verá los detalles y las tablas de la publicación:

Creación de una suscripción en la segunda máquina
Dentro del nodo de conexión, expanda el nodo Logical Replication, luego haga clic
derecho en el nodo Subscriptions, y elija la acción Create Subscription.
OmniDB abrirá una pestaña con una plantilla SQL con el comando CREATE SUBSCRIPTION listo
para que haga algunos ajustes y lo ejecute:

Tras ajustar y ejecutar el comando, puede hacer clic derecho de nuevo en el nodo Subscriptions y hacer clic en la acción Refresh. Verá que se crea un nuevo nodo con el mismo nombre que dio a la suscripción. Al expandir este nodo, verá los detalles, las publicaciones referenciadas y las tablas de la suscripción:

Además, el comando CREATE SUBSCRIPTION creó un slot de replicación lógica
llamado testsub (el mismo nombre que la suscripción) en la primera máquina:

Prueba de la replicación lógica
Para comprobar que la replicación funciona, vamos a crear algunos datos en el nodo 1. Haga
clic derecho en la tabla public.customers, luego apunte a Data Actions, y haga clic
en la acción Edit Data. En esta cuadrícula, puede añadir, editar y eliminar
datos de la tabla. Añada 2 filas de ejemplo, así:

Luego, en el otro nodo, compruebe si la tabla public.customers se pobló
automáticamente. Haga clic derecho en la tabla public.customers, luego apunte a Data
Actions, y haga clic en la acción Query Data:

Como podemos ver, ambas filas creadas en la primera máquina se replicaron en la segunda máquina. Esto nos indica que la replicación lógica funciona.
Ahora puede realizar otras acciones, como añadir/eliminar tablas de la publicación y crear una nueva publicación que publique todas las tablas.