Cette page présente l'extension 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. Il 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 génère un miroir physique dans le système cible. Même si la réplication physique est robuste et protège l'ensemble du cluster de base de données, elle est unidirectionnelle uniquement et nécessite un accès au fichier de données de base de données sous-jacent et aux fichiers de journalisation avant écriture (WAL).
En revanche, l'extension pglogical
extrait les modifications SQL d'une base de données du fournisseur, les réplique, puis les lit à nouveau dans une ou plusieurs bases de données d'abonnés. Cette réplication est appelée réplication logique.
L'extension pglogical
vous permet d'effectuer les opérations suivantes:
- Répliquer des données entre plusieurs bases de données AlloyDB Omni
- Répliquer des 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 nombreuses distributions dans des services cloud tiers.
Avantages
La réplication logique avec l'extension pglogical
offre les avantages suivants:
Réplication sélective:permet de définir des filtres et des règles pour déterminer les données à répliquer et l'emplacement de la réplication. Vous pouvez choisir les tables à inclure et la manière dont les nouvelles tables sont gérées, qu'elles soient incluses ou non. Vous pouvez également ajouter des filtres de colonne et de ligne. Vous pouvez ajouter un
apply delay
facultatif si vous souhaitez que l'abonné représente un point temporel du fournisseur.Réplication bidirectionnelle et multi-principale: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 en tant que fournisseur et abonné, ce qui permet de créer des scénarios de réplication avancés et de mettre à jour des données à différents points de terminaison.
Compatibilité avec les 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 cloud incluent également l'extensionpglogical
en option, ce qui permet des configurations multicloud ou cloud hybride.Réplication entre versions:comme pglogical réplique les instructions SQL réelles, il permet de répliquer entre les versions majeures de PostgreSQL. En particulier lorsque la base de données source du fournisseur est une version antérieure à celle de la base de données cible de l'abonné, la réplication entre versions peut être implémentée de manière fiable.
L'extension
pglogical
est compatible avec de nombreuses anciennes versions de PostgreSQL, telles que la version 9.4 et les versions ultérieures. Il s'agit donc d'un choix optimal pour les scénarios où vous devez gérer des systèmes anciens et que vous 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 complète, compatible avec les anciennes versions de PostgreSQL et les services gérés par 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 base de données relationnelles, présentent certaines limites, et toute mauvaise gestion peut interrompre le processus de réplication.
Tenez compte des points suivants pour une implémentation fiable:
- Comment gérer les objets à l'échelle de la base de données et du 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 disposent d'une clé primaire.
Vous pouvez utiliser la fonctionnalité
REPLICA IDENTITY
de la table pour indiquer à l'extensionpglogical
les colonnes qui identifient de manière unique les lignes. Cela doit être évité autant que possible. Les tables qui ne comportent pas de clés primaires 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és primaires. - Gestion des déclencheurs et des séquences dans les bases de données des abonnés. Par défaut, les déclencheurs sont définis comme des déclencheurs
ORIGIN
ouLOCAL
et ne se déclenchent pas sur 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 tous les déclencheurs afin qu'ils ne se déclenchent pas du côté de l'abonné, sauf si cela est nécessaire. - Résolution des conflits manuellement ou automatiquement via des 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 les répliquant automatiquement dans les bases de données des abonnés à l'aide de la fonction API
pglogical
appropriée sur 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.
- Assurez-vous qu'un réseau TCP robuste, performant, fiable et sécurisé existe entre tous les points de terminaison de la topologie de réplication.
Les restrictions supplémentaires de l'extension pglogical
sont les suivantes:
- Les autorisations de super-utilisateur sont actuellement 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 sont pas répliquées. - Pour répliquer le LDD, vous devez utiliser la fonction de l'API pglogical. Les commandes DDL natives ne sont pas répliquées, sauf la commande
TRUNCATE
. - Fonctionne au niveau de l'objet par table et par séquence, et est déployé par base de données. Cela signifie que certains objets, y compris les objets de portée de cluster tels que
users
etroles
, sont exclus de la réplication et doivent être gérés séparément.
Étape suivante
- Repliquer des données entre Google Cloud AlloyDB et AlloyDB Omni
- Répliquer des données entre AlloyDB Omni et d'autres bases de données