Prise en charge du basculement pour Oracle GoldenGate avec PostgreSQL 17 et versions ultérieures

Découvrez comment configurer le basculement en cas d'incident pour Oracle GoldenGate avec PostgreSQL 17 et versions ultérieures.

PostgreSQL 17 a introduit la prise en charge de la synchronisation automatique des emplacements de réplication logique entre les serveurs principal et de secours. Lorsqu'elle est utilisée avec Oracle GoldenGate, cette fonctionnalité permet un basculement transparent des processus Extract sans qu'il soit nécessaire de recréer manuellement les emplacements de réplication.

Cette fonctionnalité garantit une réplication continue des données avec une interruption minimale lors des événements de basculement.

Prérequis pour l'activation de la prise en charge du basculement en cas d'incident pour Oracle GoldenGate pour PostgreSQL 17 et versions ultérieures

Avant d'activer la prise en charge du basculement, vérifiez les points suivants :

Configuration de la prise en charge du basculement

Configurez la prise en charge du basculement en cas d'incident en effectuant les tâches suivantes sur les serveurs principal et de secours PostgreSQL, puis sur le côté Extract Oracle GoldenGate.

  1. Configurez les serveurs principal et de secours PostgreSQL.

    Sur le serveur principal : mettez à jour les paramètres de configuration PostgreSQL :

    wal_level = logical
    max_replication_slots = *sufficient_value*
    sync_replication_slots = on
    synchronized_standby_slots = '*standby_slot_name*'

    Sur le serveur de secours

    Mettez à jour les paramètres :

    hot_standby_feedback = on
    primary_slot_name = '*primary_physical_slot*'
  2. Après avoir mis à jour la configuration, redémarrez PostgreSQL sur les serveurs principal et de secours.

  3. Activez la prise en charge des emplacements de basculement lors de l'enregistrement du processus Extract.

    Utiliser l'interface Web d'Oracle GoldenGate

    Lors de la création de l'extraction pour PostgreSQL, activez le commutateur de bascule Basculement des emplacements de réplication :

    Activez la bascule Basculer entre les emplacements de réplication de basculement.

    Utilisation de AdminClient

    REGISTER EXTRACT *extract_name* FAILOVERSLOT;

    Utilisation de l'API REST

    POST /services/v2/extracts/AT
    {
        "credentials": {
            "alias": "fail1"
        },
        "registration": "default",
        "failoverSlot": true
    }
  4. Vérifiez la configuration sur les serveurs principal et de secours PostgreSQL :

    Sur le serveur principal : exécutez la requête suivante :

    SELECT slot_name, slot_type, failover
    FROM pg_replication_slots;

    La sortie doit afficher :

    • Le type d'emplacement est logical

    • failover est défini sur true.

    Sur le serveur de secours : exécutez la requête suivante :

    SELECT slot_name, restart_lsn
    FROM pg_replication_slots;

    La sortie doit afficher :

    • Le même emplacement existe sur la base de données de secours

    • Les valeurs LSN progressent

  5. Effectuez le basculement en cas d'incident en procédant comme suit :

    1. Promouvez le serveur de secours vers le serveur principal à l'aide du mécanisme de haute disponibilité configuré.

    2. Mettez à jour la configuration Extract pour vous connecter à la nouvelle base de données principale.

    3. Lancer ou reprendre le traitement d'extraction.

    La réplication se poursuit à partir de la dernière position traitée sans nécessiter de réinitialisation.

  6. Surveiller l'état des emplacements de réplication :

    SELECT slot_name, active, restart_lsn
    FROM pg_replication_slots;

    Vérifiez les points suivants :

    • Le créneau est actif

    • Le redémarrage du LSN avance

    • Aucune accumulation excessive de WAL

  7. La suppression des emplacements de réplication inutilisés permet d'éviter une conservation et une utilisation excessives du disque WAL.

    SELECT pg_drop_replication_slot('*slot_name*');

Meilleures pratiques pour la configuration de la prise en charge du basculement

Pour configurer la prise en charge du basculement avec le processus Extract Oracle GoldenGate pour PostgreSQL, tenez compte des meilleures pratiques suivantes :

Limites

Directives spécifiques au cloud