PostgreSQL: Unterstützte Datentypen, Objekte und Vorgänge

Oracle GoldenGate für PostgreSQL unterstützt die Erfassung und Zustellung von anfänglichen Lade- und Transaktionsdaten für unterstützte PostgreSQL-Datenbankversionen.

Oracle GoldenGate für PostgreSQL unterstützt die Zuordnung, Filterung und Transformation von Quelldaten, sofern in diesem Dokument nichts anderes angegeben ist, sowie die Replikation von Daten, die von anderen von Oracle GoldenGate unterstützten Quelldatenbanken abgeleitet werden, in PostgreSQL-Datenbanken.

Unterstützte Datenbanken

Im Folgenden werden unterstützte Datenbanken und Einschränkungen für Oracle GoldenGate für PostgreSQL aufgeführt:

Überlegungen zur Hochverfügbarkeit

Oracle GoldenGate unterstützt das Erfassen von Änderungsdaten aus der High Availability-Konfiguration PostgreSQL. Diese Funktionalität ist nur auf PostgreSQL-Datenbankversionen 16 und höher verfügbar. Die Erfassung von Änderungsdaten kann auf dem Primärserver oder einem beliebigen schreibgeschützten Standby-Server im High Availability-Setup konfiguriert werden. Um mögliche Datenverluste und manuelle Eingriffe bei Failover zu vermeiden, empfiehlt Oracle GoldenGate, das High Availability-Setup mit synchroner Replikation zu konfigurieren.

Weitere Informationen zu möglichen Datenverlusten und Szenarios für manuelle Eingriffe finden Sie in den Oracle GoldenGate-Prozeduren für PostgreSQL High Availability Failover Doc ID 2818379.1.

Um den CDC-Extrakt aus einem PostgreSQL High Availability-Setup zu konfigurieren, führen Sie die folgenden Aufgaben aus: 1. Extract kann so konfiguriert werden, dass Daten vom Primärserver oder einem schreibgeschützten Standby-Server im High Availability-Setup erfasst werden.

  1. Wenn Extract auf einem Knoten (primär oder Standby) konfiguriert ist, muss der Replikations-Slot mit demselben Namen auf allen anderen Knoten im High Availability-Setup gleichzeitig erstellt werden, bevor die Datenerfassung gestartet wird.

    1. Verwenden Sie den Befehl REGISTER EXTRACT, um den Replikationsslot auf einem Server (auf dem der Extract konfiguriert ist) zu erstellen, wie im folgenden Beispiel dargestellt:

      REGISTER EXTRACT exte
    2. Erstellen Sie unmittelbar nach der Registrierung von Extract den Replikations-Slot mit demselben Namen. Sie müssen denselben Replikations-Slot-Namen auf allen anderen Knoten im High Availability-Setup explizit verwenden.

      postgres=# select pg_create_logical_replication_slot('exte_ac6b520cab2871b7', 'test_decoding');
       pg_create_logical_replication_slot
      
      ------------------------------------
       (exte_ac6b520cab2871b7,0/8169E00)
      (1  row)
      2025-01-20T06:58:22Z  INFO    OGG-25355  Successfully created replication slot 'exte_ac6b520cab2871b7' for Extract group 'EXTE' in database 'postgres'.
    3. Melden Sie sich bei der entsprechenden Datenbank an, und führen Sie die pg_create_logical_replication_slot-Anweisung aus PSQL aus. Hinweis: WICHTIGER HINWEIS FÜR REPLICATION SLOT CREATION ON STANDBY: Wenn die Erstellung des Replikations-Slots auf dem schreibgeschützten STANDBY-Server versucht wird (entweder mit dem Befehl REGISTER EXTRACT oder der Anweisung pg_create_logical_replication_slot), wird der Vorgang erst abgeschlossen, nachdem eine DML (eine beliebige zufällige DML) für eine Tabelle auf dem primären Server im High Availability-Setup ausgeführt wurde. Alternativ kann die Heartbeat-Funktionalität auf dem primären Server aktiviert werden. Dies kann dazu führen, dass die erforderliche DML-Aktivität auf der primären Datenbank die Erstellung des Replikations-Slots auf dem Standby-Server abschließt.

  1. ADD TRANDATA- oder DELETE TRANDATA-Befehle werden auf keinen schreibgeschützten Standbyservern im High Availability-Setup PostgreSQL unterstützt. Die Einstellung REPLICA IDENTITY einer Tabelle auf dem schreibgeschützten Standby-Server entspricht der Einstellung REPLICA IDENTITY der entsprechenden Tabelle auf dem Primärserver.

  2. Um die Heartbeat-Funktionalität zu verwenden, wenn die Datenerfassung auf einem schreibgeschützten Standby-Server konfiguriert ist, muss die Heartbeat-Funktionalität auf dem primären Server aktiviert sein.

  3. Im Falle eines Failovers sollte die Extrahierungsparameterdatei so geändert werden, dass eine Verbindung zum gewünschten Knoten hergestellt wird (entweder Primär-/Standby, basierend auf der Anforderung), um die Datenerfassung nach dem Failover fortzusetzen.

    Beispiel

    Betrachten Sie eine Situation, in der sich drei Knoten im High Availability-Cluster PostgreSQL mit entsprechenden Verbindungsaliasnamen befinden:

    Node1 (aktuelle Primärdatenbank) mit dem entsprechenden Verbindungsalias: node1

    Node2 (Standby) mit dem entsprechenden Verbindungsalias: node2

    Node3 (Standby) mit dem entsprechenden Verbindungsalias: node3

    Wenn der Extract vor dem Failover so konfiguriert ist, dass Daten von einem der Knoten (wie node2) erfasst werden, enthält die Extract-Parameterdatei einen Eintrag wie den folgenden:

    USERIDALIAS node2

    Bei einem Failover wird der primäre Knoten (node1) heruntergefahren, und der sekundäre Knoten (node2) wird zum neuen primären Knoten. Dann gibt es zwei Möglichkeiten:

    1. So fahren Sie mit der Datenerfassung aus demselben node2 fort:

      • In der Extract-Parameterdatei sind keine Änderungen erforderlich.

      • Starten Sie den Extract neu.

    2. So erfassen Sie die Daten immer von einem anderen Knoten aus:

      • Ändern Sie die Extract-Parameterdatei, um eine Verbindung zum gewünschten Knoten herzustellen, wie Node3.

        USERIDALIAS node3
      • Starten Sie den Extract neu.

Unterstützte PostgreSQL-Datentypen

Im Folgenden finden Sie eine Liste der PostgreSQL-Datentypen, die Oracle GoldenGate unterstützt, sowie die Einschränkungen dieser Unterstützung.

Arraydatentyp verarbeiten

PostgreSQL unterstützt array verschiedener integrierter und UDT-Typen. Ab Oracle GoldenGate-Release 26ai unterstützen Oracle GoldenGate Extract und Replicat den Datentyp PostgreSQL array der folgenden Typen:

Die Datentypen real, double, numeric unterstützen die speziellen numerischen Werte NaN und Infinity/-Infinity.

Weitere Informationen zu Datentypen nach Datenbanken, die spezielle Werte unterstützen, finden Sie unter Von Datenbankdatentypen unterstützte Sonderwerte.

Sowohl das erstmalige Laden als auch der CDC-Extrakt unterstützen diese Array-Typen.

Hinweis: Initial Load Extract unterstützt PostgreSQL array des Datentyps time nicht.

Einschränkungen des Supports

Nicht unterstützte PostgreSQL-Datentypen

Oracle GoldenGate für PostgreSQL unterstützt die folgenden Datentypen nicht:

Unterstützte Objekte und Vorgänge für PostgreSQL

Tabellen, Views und Materialized Views

Tabellen, die für die Erfassung und Übermittlung eingeschlossen werden sollen, müssen die folgenden Anforderungen erfüllen und dürfen nur Datentypen enthalten, die unter Unterstützte Datentypen PostgreSQL aufgeführt sind.

Einschränkungen

Sequenzen und Identity-Spalten