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 :
-
PostgreSQL version 17 ou ultérieure est déployé.
-
Une configuration principale et de secours (réplique) est déjà configurée.
-
Oracle GoldenGate est installé et configuré.
-
Les droits d'accès requis pour la base de données sont disponibles.
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.
-
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*' -
Après avoir mis à jour la configuration, redémarrez PostgreSQL sur les serveurs principal et de secours.
-
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 :

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 } -
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 -
failoverest défini surtrue.
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
-
-
Effectuez le basculement en cas d'incident en procédant comme suit :
-
Promouvez le serveur de secours vers le serveur principal à l'aide du mécanisme de haute disponibilité configuré.
-
Mettez à jour la configuration Extract pour vous connecter à la nouvelle base de données principale.
-
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.
-
-
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
-
-
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 :
-
Activer les emplacements de basculement lors de la création de l'extraction
-
Surveiller régulièrement le statut des emplacements de réplication
-
Effectuer des tests de basculement périodiques
-
Garantir un espace disque suffisant pour les fichiers WAL
Limites
-
Limitation de la base de données en kilo-octets : les emplacements de basculement ne sont pas pris en charge par la base de données en kilo-octets car elle utilise toujours une ancienne version de PostgreSQL, qui ne prend pas en charge l'emplacement de basculement.
-
Limitation d'Oracle GoldenGate avec la commande MIGRATE : l'emplacement de basculement ne fonctionne pas avec
Migratecar le nouvel emplacement n'est pas un emplacement de basculement avec le paramètrefailover = true.
Directives spécifiques au cloud
-
Amazon RDS pour PostgreSQL : définissez le paramètre suivant :
rds.logical_slot_sync_dbname = '*database_name*'Pour plus d'informations, reportez-vous à : https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.pglogical.slot.synchronization.html
-
Azure Database for PostgreSQL : les actions suivantes sont effectuées :
-
Le basculement est géré automatiquement
-
Assurez-vous que la réplication logique est activée
Pour en savoir plus, reportez-vous à https://learn.microsoft.com/en-us/azure/postgresql/high-availability/concepts-high-availability#failover-support
-
-
PostgreSQL Détails du décodage logique : pour plus de détails sur le décodage logique PostgreSQL, reportez-vous à https://www.postgresql.org/docs/17/logicaldecoding-explanation.html.