Failover-Unterstützung für Oracle GoldenGate mit PostgreSQL 17 und höher
Erfahren Sie, wie Sie Failover für Oracle GoldenGate mit PostgreSQL 17 und höher konfigurieren.
PostgreSQL 17 unterstützt die automatische Synchronisierung logischer Replikations-Slots zwischen Primär- und Standby-Servern. Bei Verwendung mit Oracle GoldenGate ermöglicht diese Funktion ein nahtloses Failover von Extract-Prozessen, ohne dass Replikations-Slots manuell neu erstellt werden müssen.
Diese Funktion gewährleistet eine kontinuierliche Datenreplikation mit minimaler Unterbrechung bei Failover-Ereignissen.
Voraussetzungen für die Aktivierung von Failover-Unterstützung für Oracle GoldenGate für PostgreSQL 17 und höher
Bevor Sie die Failover-Unterstützung aktivieren, stellen Sie Folgendes sicher:
-
Die PostgreSQL-Version 17 oder höher wird bereitgestellt.
-
Eine Primär- und Standbykonfiguration (Replikat) ist bereits eingerichtet.
-
Oracle GoldenGate ist installiert und konfiguriert.
-
Erforderliche Datenbankberechtigungen sind verfügbar.
Konfigurieren der Failover-Unterstützung
Konfigurieren Sie die Failover-Unterstützung, indem Sie die folgenden Aufgaben auf den Primär- und Standbyservern PostgreSQL und dann auf der Oracle GoldenGate-Extraktionsseite ausführen.
-
Konfigurieren Sie PostgreSQL-Primär- und -Standbyserver.
Auf dem primären Server: Aktualisieren Sie die Konfigurationsparameter PostgreSQL:
wal_level = logical max_replication_slots = *sufficient_value* sync_replication_slots = on synchronized_standby_slots = '*standby_slot_name*'Auf dem Standby-Server
Aktualisieren Sie die Konfigurationsparameter:
hot_standby_feedback = on primary_slot_name = '*primary_physical_slot*' -
Starten Sie nach dem Aktualisieren der Konfiguration PostgreSQL sowohl auf dem Primär- als auch auf dem Standbyserver neu.
-
Aktivieren Sie die Unterstützung von Failover-Slots bei der Registrierung des Extraktionsprozesses.
Oracle GoldenGate-Weboberfläche verwenden
Aktivieren Sie beim Erstellen von Extract für PostgreSQL den Schalter "Failover-Replikationseinschubfächer":

Verwenden von AdminClient
REGISTER EXTRACT *extract_name* FAILOVERSLOT;Mit der REST-API
POST /services/v2/extracts/AT { "credentials": { "alias": "fail1" }, "registration": "default", "failoverSlot": true } -
Prüfen Sie die Konfiguration auf den Primär- und Standbyservern PostgreSQL:
Auf dem primären Server: Führen Sie die folgende Abfrage aus:
SELECT slot_name, slot_type, failover FROM pg_replication_slots;Die Ausgabe sollte Folgendes anzeigen:
-
Einschubfachtyp ist
logical -
failoverist auftruegesetzt
Auf dem Standby-Server: Führen Sie die folgende Abfrage aus:
SELECT slot_name, restart_lsn FROM pg_replication_slots;Die Ausgabe sollte Folgendes anzeigen:
-
Derselbe Slot ist im Standby-Modus vorhanden.
-
LSN-Werte werden verarbeitet
-
-
Führen Sie das Failover aus, indem Sie die folgenden Schritte ausführen:
-
Hochstufen des Standby-Servers zur Primärdatenbank mithilfe des konfigurierten High Availability-Mechanismus.
-
Aktualisieren Sie die Extract-Konfiguration, um eine Verbindung zur neuen Primärdatenbank herzustellen.
-
Extrahierungsprozess starten oder wiederaufnehmen
Die Replikation wird ab der zuletzt verarbeiteten Position fortgesetzt, ohne dass eine erneute Initialisierung erforderlich ist.
-
-
Replikations-Slot-Status überwachen:
SELECT slot_name, active, restart_lsn FROM pg_replication_slots;Prüfen Sie Folgendes:
-
Slot ist aktiv
-
Restart LSN geht voran
-
Keine übermäßige WAL-Akkumulation
-
-
Das Entfernen nicht verwendeter Replikations-Slots verhindert eine übermäßige
WAL-Aufbewahrung und Datenträgerauslastung.SELECT pg_drop_replication_slot('*slot_name*');
Best Practices für die Failover-Supportkonfiguration
Beachten Sie die folgenden Best Practices, um die Failover-Unterstützung mit Oracle GoldenGate Extract for PostgreSQL zu konfigurieren:
-
Failover-Slots während der Extrakterstellung aktivieren
-
Überwachen Sie regelmäßig den Replikations-Slot-Status
-
Periodische Failover-Tests durchführen
-
Stellen Sie ausreichend Speicherplatz für WAL-Dateien sicher
Einschränkungen
-
Einschränkung der Yugabyte-Datenbank: Failover-Slots werden von der Yugabyte-Datenbank nicht unterstützt, da sie immer noch die ältere Version PostgreSQL verwendet, die kein Failover-Slot unterstützt.
-
Oracle GoldenGate-Einschränkung mit MIGRATE-Befehl: Failover-Slot funktioniert nicht mit
Migrate, da der neu erstellte Slot kein Failover-Slot mit der Einstellungfailover = trueist.
Cloud-spezifische Richtlinien
-
Amazon RDS für PostgreSQL: Legen Sie den folgenden Parameter fest:
rds.logical_slot_sync_dbname = '*database_name*'Weitere Informationen finden Sie unter: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.pglogical.slot.synchronization.html
-
Azure Database for PostgreSQL: Die folgenden Aktionen werden ausgeführt:
-
Failover wird automatisch verwaltet
-
Sicherstellen, dass die logische Replikation aktiviert ist
Weitere Informationen finden Sie unter https://learn.microsoft.com/en-us/azure/postgresql/high-availability/concepts-high-availability#failover-support
-
-
PostgreSQL Logische Decodierungsdetails: Details zur logischen Decodierung von PostgreSQL finden Sie unter https://www.postgresql.org/docs/17/logicaldecoding-explanation.html.