pglogical
, ses avantages et ses limites.
Présentation
L'extension pglogical
est un outil de réplication logique robuste et flexible conçu pour PostgreSQL. Elle est également compatible avec la haute disponibilité (HA) et la reprise après sinistre (DR).
La réplication binaire traditionnelle, communément appelée réplication physique, réplique les modifications au niveau du système de fichiers et des blocs, ce qui crée un miroir physique dans le système cible. Bien que la réplication physique soit robuste et protège l'ensemble du cluster de bases de données, elle n'est que unidirectionnelle et nécessite l'accès aux fichiers de données de base de données sous-jacents et aux fichiers journaux WAL (Write-Ahead Log).
L'extension pglogical
extrait les modifications SQL d'une base de données fournisseur, les réplique, puis les rejoue sur une ou plusieurs bases de données abonnées. Cette réplication est appelée réplication logique.
L'extension pglogical
vous permet d'effectuer les opérations suivantes :
- Répliquez les données entre plusieurs bases de données AlloyDB Omni.
- Répliquez les données entre AlloyDB Omni et Google Cloud AlloyDB.
- Répliquez les données entre AlloyDB Omni et d'autres distributions PostgreSQL, y compris de nombreux services cloud tiers.
Avantages
La réplication logique avec l'extension pglogical
offre les avantages suivants :
La réplication sélective vous permet de définir des filtres et des règles pour déterminer les données à répliquer et leur destination. Vous pouvez choisir les tables à inclure et la façon dont les nouvelles tables sont gérées (incluses ou non). Vous pouvez également ajouter des filtres de colonnes et de lignes. Un
apply delay
facultatif peut être ajouté dans les situations où vous souhaitez que l'abonné représente un point dans le temps à la suite du fournisseur.Réplication bidirectionnelle et multi-primaire : toutes les bases de données membres sont ouvertes en lecture/écriture et sont entièrement utilisables. Chaque base de données de point de terminaison agit à la fois comme fournisseur et comme abonné, ce qui permet de créer des scénarios de réplication avancés et de mettre à jour les données à différents points de terminaison.
Assistance des fournisseurs de services cloud : les fournisseurs de services cloud tels que Google reconnaissent la valeur de l'extension
pglogical
et l'intègrent à leurs services cloud, tels que Google Cloud SQL pour PostgreSQL et AlloyDB. D'autres fournisseurs de services cloud incluent également l'extensionpglogical
comme option, ce qui permet des configurations multicloud ou hybrides.Réplication entre versions : comme pglogical réplique les instructions SQL réelles, il permet la réplication entre les versions majeures de PostgreSQL. La réplication interversion peut être implémentée de manière fiable, en particulier lorsque la base de données source du fournisseur est d'une version antérieure à la base de données cible de l'abonné.
L'extension
pglogical
est compatible avec de nombreuses versions antérieures de PostgreSQL, telles que la version 9.4 et les versions ultérieures. Cela en fait un choix optimal pour les scénarios dans lesquels vous traitez des systèmes anciens et souhaitez répliquer des données dans des versions plus modernes de PostgreSQL, telles que celles utilisées dans AlloyDB Omni et Google Cloud AlloyDB.
En résumé, l'extension pglogical
fournit une solution de réplication logique riche en fonctionnalités, compatible avec les anciennes versions de PostgreSQL et les services gérés dans le cloud, y compris Google Cloud SQL pour PostgreSQL et AlloyDB.
Limites de la réplication logique
Toutes les technologies de réplication logique, y compris celles utilisées avec d'autres plates-formes de bases de données relationnelles, présentent certaines limites. Toute mauvaise gestion peut interrompre le processus de réplication.
Pour une implémentation fiable, tenez compte des points suivants :
- Réflexion sur la manière de gérer les objets à l'échelle d'une base de données et d'un cluster qui ne sont pas inclus dans le champ d'application de la réplication. L'extension
pglogical
fonctionne au niveau de la base de données et uniquement sur un ensemble spécifié de tables et de séquences. Les autres types d'objets, tels que les fonctions et les procédures, doivent être répliqués à l'aide d'une autre méthode. - Il est recommandé que toutes les tables de réplication possèdent une clé primaire.
Il est possible d'utiliser la fonctionnalité de tableau
REPLICA IDENTITY
pour informer l'extensionpglogical
des colonnes qui identifient de manière unique les lignes. Cela doit être évité autant que possible. Les tables sans clé primaire sont statiques par nature et ne sont jamaisUPDATED
niDELETED
. Elles ne sont compatibles qu'avecINSERTS
. Ces types de tables n'ont pas besoin de clé primaire. - Gestion des déclencheurs et des séquences dans les bases de données d'abonnés. Par défaut, les déclencheurs sont définis comme des déclencheurs
ORIGIN
ouLOCAL
, et ne se déclenchent pas dans la base de données des abonnés lorsque les lignes sont répliquées. Tous les déclencheurs doivent être vérifiés pour s'assurer que l'optionREPLICA
est définie pour chaque déclencheur afin qu'il ne se déclenche pas côté abonné, sauf si cela est nécessaire. - Gérer la résolution des conflits manuellement ou automatiquement à l'aide de règles
who wins
. - Réplication des commandes LDD (langage de définition de données) en les implémentant manuellement sur tous les points de terminaison ou en répliquant automatiquement les LDD dans les bases de données des abonnés à l'aide de la fonction d'API
pglogical
appropriée dans la base de données du fournisseur. - Assurez-vous que les tables et séquences nouvellement créées sont ajoutées manuellement ou automatiquement aux ensembles de réplication sur les bases de données principales.
- S'assurer qu'un réseau TCP robuste, performant, fiable et sécurisé existe entre tous les points de terminaison de la topologie de réplication.
Voici d'autres restrictions et limites de l'extension pglogical
:
- Des autorisations de super-utilisateur sont requises pour la version 2.4.3 de
pglogical
. - Bien que la plupart des tables et des séquences puissent être répliquées, d'autres types d'objets ne le sont pas par l'extension
pglogical
, et les tablesTEMPORARY
etUNLOGGED
ne le sont pas non plus. - Pour répliquer le LDD, la fonction de l'API pglogical doit être utilisée. Les commandes LDD natives ne sont pas répliquées, à l'exception de la commande
TRUNCATE
. - Il fonctionne au niveau des objets, par table et par séquence, et est déployé par base de données. Cela signifie que certains objets, y compris les objets à portée cluster tels que
users
etroles
, sont exclus de la réplication et doivent être gérés séparément.
Étapes suivantes
- Répliquez des données entre AlloyDB pour PostgreSQL et AlloyDB Omni.
- Répliquez des données entre AlloyDB Omni et d'autres bases de données.