Configuration de la réplication logique pour le pour une instance de base de données Postgre SQL - Amazon Relational Database Service

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 pour une instance de base de données Postgre SQL

La procédure suivante explique comment démarrer une réplication logique entre deux . RDSpour les SQL instances de base de données Postgre. 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.

Pour créer le nœud de serveur de publication et définir les tables à répliquer

Ces étapes supposent que votre pour que l'SQLinstance de base de données Postgre possède une ou plusieurs tables que vous souhaitez répliquer sur 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 tablename 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.

  1. 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.

    1. Créez un exemple de tableau à l'aide de l'SQLinstruction suivante.

      CREATE TABLE docs_lab_table (a int PRIMARY KEY);
    2. Remplissez le tableau avec les données générées à l'aide de l'SQLinstruction suivante.

      INSERT INTO docs_lab_table VALUES (generate_series(1,5000)); INSERT 0 5000
    3. Vérifiez que les données existent dans le tableau à l'aide de l'SQLinstruction suivante.

      SELECT count(*) FROM docs_lab_table;
  2. Identifiez ce pour SQL instance de base de données Postgre en tant que nœud d'éditeur, 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)
  3. 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 pour l'SQLinstance de base de données Postgre a été configuré avec l'pglogicalextension. Pour de plus amples informations, veuillez consulter Configuration de l'extension pglogical.

  1. 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
  2. Sur le pour l'SQLinstance de base de données Postgre, créez la même table que celle qui existe sur l'éditeur. 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);
  3. Vérifiez que cette table est vide.

    SELECT count(*) FROM docs_lab_table; count ------- 0 (1 row)
  4. Identifiez ce pour l'SQLinstance de base de données Postgre en tant que nœud d'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)
  5. 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 vérifier que cela s'est produit à l'aide de la SQL requête 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é.