Subscription
PostgreSQL Logical Replication Subscription
Subscription è l’oggetto che, sul lato subscriber (il database destinazione), stabilisce la connessione al publisher PostgreSQL, specifica la publication a cui iscriversi e gestisce l’intero ciclo di vita della replica logica: snapshot iniziale dei dati, streaming delle modifiche incrementali, riconnessione automatica in caso di interruzione.
Come si crea #
Si dichiara con CREATE SUBSCRIPTION, indicando la connessione al publisher e la publication da consumare:
CREATE SUBSCRIPTION mia_sub
CONNECTION 'host=pg-primary user=replica_user dbname=app'
PUBLICATION mia_pub;
All’istante della creazione viene effettuato uno snapshot iniziale delle tabelle, poi parte lo streaming continuo via WAL.
Stato e monitoraggio #
La vista pg_stat_subscription espone lo stato di ogni subscription attiva: posizione corrente di applicazione, latenza, ultimo evento ricevuto. È il punto di ingresso per il troubleshooting di lag o di stalli.
Limiti operativi #
Una subscription non può essere paused/resumed nativamente prima della 14 — si disabilita con ALTER SUBSCRIPTION ... DISABLE. In caso di conflitti (riga già presente sul destinazione, violazione di constraint) lo streaming si ferma e va risolto manualmente prima di riprendere.