Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Use the pglogical extension

Dernière mise à jour :Oct 10, 2026

Cette rubrique explique comment utiliser l'extension pglogical de PostgreSQL pour répliquer les données d'une instance ApsaraDB RDS for PostgreSQL. Cette extension implémente la réplication logique en flux continu selon un modèle publication/abonnement.

Prérequis

  • Votre instance RDS exécute PostgreSQL 10 ou une version ultérieure.

  • La version mineure du moteur de votre instance RDS est égale ou supérieure à 20230830. Si votre instance RDS exécute PostgreSQL 17, la version mineure du moteur doit être 20241030 ou ultérieure.

    Important

    Bien que cette extension soit prise en charge dans les versions mineures du moteur antérieures à 20230830, ApsaraDB RDS optimise les extensions vulnérables lors des mises à jour des versions mineures afin de normaliser leur gestion et de renforcer la sécurité. Par conséquent, vous ne pouvez pas créer cette extension sur les instances RDS dont la version mineure du moteur est antérieure à 20230830. Pour plus d'informations, consultez la section Restrictions sur la création d'extensions pour RDS for PostgreSQL.

    • Si vous avez déjà créé cette extension sur une instance RDS dont la version mineure du moteur est antérieure à 20230830, vous pouvez continuer à l'utiliser.

    • Pour créer cette extension pour la première fois ou la recréer sur votre instance RDS, mettez à jour la version mineure du moteur vers la dernière version disponible. Pour plus d'informations, consultez la section Mettre à jour la version mineure du moteur.

  • L'extension pglogical figure dans la valeur du paramètre shared_preload_libraries de votre instance RDS.

    Pour ajouter pglogical à la valeur du paramètre shared_preload_libraries , consultez la section Définir les paramètres de l'instance.

    Remarque

    La modification de la valeur du paramètre shared_preload_libraries entraîne un redémarrage immédiat de votre instance RDS. Ce redémarrage interrompt la connexion entre votre application et l'instance RDS. Agissez avec prudence : avant de déclencher le redémarrage, planifiez vos opérations et vérifiez que votre application est configurée pour se reconnecter automatiquement à la base de données.

Contexte

L'extension pglogical de PostgreSQL offre une méthode efficace de réplication des données en alternative à la réplication physique, en s'appuyant sur un modèle publication/abonnement. Elle offre une vitesse de réplication supérieure à celle de Slony, Bucardo et Londiste, et prend en charge les mises à niveau entre différentes versions. L'extension pglogical convient aux scénarios suivants :

  • Mise à niveau des versions majeures du moteur

  • Réplication de toutes les données d'une base de données hébergée sur votre instance RDS

  • Réplication de tables, de lignes et de colonnes spécifiques à l'aide d'ensembles de réplication

  • Agrégation et fusion des données provenant de plusieurs serveurs amont

Utiliser l'extension

  • Activez l'extension pglogical.

    CREATE EXTENSION pglogical;
  • Désactivez l'extension pglogical.

    DROP EXTENSION pglogical;

Configurer la réplication logique en flux continu

  1. Créez un nœud éditeur sur le serveur éditeur.

    Remarque

    Définissez le paramètre host sur 127.0.0.1 pour le nœud éditeur. Exécutez l'instruction SHOW PORT; pour obtenir la valeur du paramètre port du nœud éditeur.

    SELECT pglogical.create_node(
        node_name := 'provider',
        dsn := 'host=127.0.0.1 port=<Port number> dbname=test user=provider_user password=provider_pass'
    );
  2. Configurez un ensemble de réplication.

    Ajoutez toutes les tables du schéma public à l'ensemble de réplication par défaut.

    SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']);
    Remarque
    • Un ensemble de réplication permet de répliquer uniquement les tables spécifiées et les modifications qui y sont apportées, de l'éditeur vers un abonné.

    • L'ensemble de réplication par défaut réplique toutes les tables et toutes les modifications qui y sont apportées, de l'éditeur vers un abonné. Pour plus d'informations, consultez la documentation pglogical.

  3. Créez un nœud abonné sur le serveur abonné.

    Remarque

    Définissez le paramètre host sur 127.0.0.1 pour le nœud abonné. Exécutez l'instruction SHOW PORT; pour obtenir la valeur du paramètre port du nœud abonné.

    SELECT pglogical.create_node(
        node_name := 'subscriber',
        dsn := 'host=127.0.0.1 port=<Port number> dbname=test user=subscriber_user password=subscriber_pass'
    );
  4. Créez un abonnement sur l'abonné.

    Remarque
    SELECT pglogical.create_subscription(
        subscription_name := 'subscription',
        provider_dsn := 'host=<Internal endpoint of the provider> port=<Internal port number of the provider> dbname=test user=provider_user password=provider_pass'
    );

    Une fois l'abonnement créé, les processus de synchronisation et de réplication démarrent en arrière-plan.

Références

Pour plus d'informations, consultez la documentation pglogical.