Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration de la réplication logique pour le cluster de bases de données Aurora PostgreSQL
La procédure suivante vous montre comment démarrer la réplication logique entre deux clusters de bases de données Aurora PostgreSQL.. Les étapes supposent que la source (serveur de publication) et la cible (abonné) ont toutes deux l'extension pglogical
configurée comme indiqué dans le document Configuration de l'extension pglogical.
Note
Le nœud node_name
d'un abonné ne peut pas commencer parrds
.
Pour créer le nœud de serveur de publication et définir les tables à répliquer
Ces étapes supposent que votre cluster de bases de données Aurora PostgreSQL possède une instance d'écriture avec une base de données qui contient une ou plusieurs tables que vous voulez répliquer vers un autre nœud. Vous devez recréer la structure de la table du serveur de publication sur l'abonné, donc d'abord, récupérer la structure de la table si nécessaire. Vous pouvez le faire en utilisant la métacommande psq1
\d
et en créant ensuite la même table sur l'instance de l'abonné. La procédure suivante crée un exemple de table sur le serveur de publication (source) à des fins de démonstration.tablename
-
Utilisez
psql
pour vous connecter à l'instance qui possède la table que vous voulez utiliser comme source pour les abonnés.psql --host=
source-instance
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=labdb
Si vous ne disposez pas d'une table existante que vous souhaitez répliquer, vous pouvez créer un exemple de table comme suit.
-
Créez un exemple de table en utilisant l'instruction SQL suivante.
CREATE TABLE docs_lab_table (a int PRIMARY KEY);
-
Remplissez la table avec les données générées en utilisant l'instruction SQL suivante.
INSERT INTO docs_lab_table VALUES (generate_series(1,5000));
INSERT 0 5000
-
Vérifiez que les données existent dans la table à l'aide de l'instruction SQL suivante.
SELECT count(*) FROM docs_lab_table;
-
-
Identifiez ce cluster de bases de données Aurora PostgreSQL comme le nœud de serveur de publication, comme suit.
SELECT pglogical.create_node( node_name := '
docs_lab_provider
', dsn := 'host=source-instance
.aws-region
.rds.amazonaws.com port=5432 dbname=labdb
');create_node ------------- 3410995529 (1 row)
-
Ajoutez la table que vous souhaitez répliquer à l'ensemble de réplication par défaut. Pour plus d'informations sur les ensembles de réplication, consultez Replication sets
(Ensembles de réplication) dans la documentation pglogical. SELECT pglogical.replication_set_add_table('default', '
docs_lab_table
', 'true', NULL, NULL);replication_set_add_table --------------------------- t (1 row)
La configuration du nœud de serveur de publication est terminée. Vous pouvez maintenant configurer le nœud abonné pour recevoir les mises à jour du serveur de publication.
Pour configurer le nœud abonné et créer un abonnement pour recevoir des mises à jour
Ces étapes supposent que le cluster de bases de données Aurora PostgreSQL a été configuré avec l'extension pglogical
. Pour de plus amples informations, veuillez consulter Configuration de l'extension pglogical.
-
Utilisez
psql
pour vous connecter à l'instance qui doit recevoir les mises à jour du serveur de publication.psql --host=
target-instance
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=labdb
-
Sur le cluster de bases de données Aurora PostgreSQL de l'abonné, créez la même table que celle qui existe sur le serveur de publication. Pour cet exemple, la table est
docs_lab_table
. Vous pouvez créer la table comme suit.CREATE TABLE docs_lab_table (a int PRIMARY KEY);
-
Vérifiez que cette table est vide.
SELECT count(*) FROM docs_lab_table;
count ------- 0 (1 row)
-
Identifiez ce cluster de bases de données Aurora PostgreSQL comme le nœud abonné, comme suit.
SELECT pglogical.create_node( node_name := '
docs_lab_target
', dsn := 'host=target-instance
.aws-region
.rds.amazonaws.com port=5432 sslmode=require dbname=labdb
user=postgres
password=********
');create_node ------------- 2182738256 (1 row)
-
Créez l'abonnement.
SELECT pglogical.create_subscription( subscription_name := 'docs_lab_subscription', provider_dsn := 'host=
source-instance
.aws-region
.rds.amazonaws.com port=5432 sslmode=require dbname=labdb
user=postgres
password=*******
', replication_sets := ARRAY['default'], synchronize_data := true, forward_origins := '{}' );create_subscription --------------------- 1038357190 (1 row)
Lorsque vous terminez cette étape, les données de la table du serveur de publication sont créées dans la table de l'abonné. Vous pouvez le vérifier en utilisant la requête SQL suivante.
SELECT count(*) FROM docs_lab_table;
count ------- 5000 (1 row)
À partir de ce moment, les modifications apportées à la table sur le serveur de publication sont répliquées sur la table sur l'abonné.