web-dev-qa-db-fra.com

Réplication partielle (filtrée) dans PostgreSQL

Ma configuration ressemble à ceci: j'ai un serveur principal (Postgres 9.6) qui raccroche continuellement un tas de données de la bande. J'aimerais pouvoir diffuser un sous-ensemble de tables ou de bases de données de ce primaire dans une instance secondaire afin que je puisse lire les données d'une application Web. L'application Web doit faire des éléments d'application Web standard avec sa base de données (tables de lecture/écriture des comptes d'utilisateurs, effectuer l'authentification, etc.) et peut également exécuter des requêtes sur les données répliquées.

Streaming Replication avec une veille chaude ressemblait à ce que ce serait mon allée, mais ne réponse reddit de quelques années de quelques années Semble suggérer que vous ne pouvez pas filtrer pour des tables spécifiques ou écrire au cluster répliqué du tout. De piquer sur Internet, mon impression est que la plupart des gens résolvent ce problème avec des outils tiers tels que Bucardo et Slony - je suis ouvert à cela, mais je cherche la solution la plus simple possible et l'ajout d'un système de réplication dédié à Ma pile semble inutilement intense. Ceci SO question de l'année dernière Avait une tête prometteuse à l'aide de décodage logique, ce qui me fait me demander s'il y a de nouveaux travaux dans cette direction. Je me demande également si cela fonctionnerait pour gérer deux instances de postgres et les lier à différents ports.

Y a-t-il des solutions ici qui ne nécessitent pas d'installer des outils tiers? Si un outil tiers est absolument nécessaire, lequel aurait-il une surcharge la plus basse à mes fins, de votre expérience?

Merci d'avance pour l'aide, y'all. Première question ici et je suis ravi d'avoir accès à votre expertise.

5
jeancochrane

Plusieurs personnes ont suggéré d'utiliser la extension pglogique , qui s'est très bien fonctionné pour ce cas d'utilisation.

3
jeancochrane