PostgreSQL: tipi di dati, oggetti e operazioni supportati

Oracle GoldenGate for PostgreSQL supporta l'acquisizione e la consegna del caricamento iniziale e dei dati transazionali per le versioni di database PostgreSQL supportate.

Oracle GoldenGate for PostgreSQL supporta il mapping, il filtro e la trasformazione dei dati di origine, a meno che non venga indicato diversamente in questo documento, nonché la replica dei dati derivati da altri database di origine supportati da Oracle GoldenGate, nei database PostgreSQL.

Database supportati

Di seguito sono riportati i database supportati e le limitazioni per Oracle GoldenGate for PostgreSQL:

Considerazioni sull'alta disponibilità

Oracle GoldenGate supporta l'acquisizione dei dati di modifica dalla configurazione High Availability PostgreSQL. Questa funzionalità è disponibile solo nelle versioni di database PostgreSQL 16 e successive. L'acquisizione dei dati di modifica può essere configurata sul server primario o su qualsiasi server in standby di sola lettura nell'impostazione High Availability. Per evitare possibili perdite di dati e interventi manuali in caso di failover, Oracle GoldenGate consiglia di configurare l'impostazione High Availability utilizzando la replica sincrona.

Per ulteriori dettagli su possibili scenari di perdita di dati e intervento manuale, consultare le procedure di Oracle GoldenGate per l'ID documento 2818379.1 PostgreSQL High Availability Failover.

Per configurare CDC Extract da un'impostazione PostgreSQL High Availability, eseguire i task riportati di seguito. 1. L'estrazione può essere configurata per acquisire dati dal server primario o da un server in standby di sola lettura nell'impostazione High Availability.

  1. Quando Extract è configurato su un nodo (primario o in standby), lo slot di replica con lo stesso nome deve essere creato contemporaneamente su tutti gli altri nodi nell'impostazione High Availability, prima di avviare l'acquisizione dei dati.

    1. Utilizzare il comando REGISTER EXTRACT per creare lo slot di replica su un server (in cui è configurato Extract), come mostrato nell'esempio riportato di seguito.

      REGISTER EXTRACT exte
    2. Subito dopo la registrazione di Extract, creare lo slot di replica con lo stesso nome. È necessario utilizzare lo stesso nome slot di replica su tutti gli altri nodi nell'impostazione High Availability in modo esplicito.

      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. Connettersi al database corrispondente ed eseguire l'istruzione pg_create_logical_replication_slot da PSQL. Nota: NOTA IMPORTANTE PER REPLICATION SLOT CREATION ON STANDBY: quando si tenta di creare lo SLOT di replica sul server in STANDBY di sola lettura (utilizzando il comando REGISTER EXTRACT o l'istruzione pg_create_logical_replication_slot), l'operazione viene completata solo dopo che alcuni DML (può essere un DML casuale) vengono eseguiti su qualsiasi tabella del server primario nell'impostazione di High Availability. In alternativa, è possibile abilitare la funzionalità heartbeat sul server primario, che può causare l'attività DML richiesta sul database primario, per completare la creazione dello slot di replica sul server in standby.

  1. I comandi ADD TRANDATA o DELETE TRANDATA non sono supportati su alcun server in standby di sola lettura nell'impostazione High Availability PostgreSQL. L'impostazione REPLICA IDENTITY di qualsiasi tabella nel server di standby di sola lettura equivale all'impostazione REPLICA IDENTITY della tabella corrispondente nel server primario.

  2. Per utilizzare la funzionalità di heartbeat quando l'acquisizione dei dati è configurata su un server in standby di sola lettura, la funzionalità di heartbeat deve essere abilitata sul server primario.

  3. In caso di failover, il file dei parametri di estrazione deve essere modificato per connettersi al nodo desiderato (principale/standby, in base al requisito) per continuare l'acquisizione dei dati dopo il failover.

    Esempio

    Si consideri una situazione in cui sono presenti tre nodi nel cluster High Availability PostgreSQL, con gli alias di connessione corrispondenti:

    Node1 (principale corrente) con alias di connessione corrispondente: node1

    Node2 (standby) con alias di connessione corrispondente: node2

    Node3 (standby) con alias di connessione corrispondente: node3

    Prima del failover, se Extract è configurato per acquisire i dati da uno dei nodi (ad esempio node2), il file dei parametri Extract conterrà una voce simile alla seguente:

    USERIDALIAS node2

    In caso di failover, il nodo primario (node1) diventa inattivo e il nodo secondario (node2) diventa il nuovo nodo primario, quindi possono esserci due possibilità:

    1. Per continuare l'acquisizione dei dati dallo stesso node2:

      • Nessuna modifica richiesta nel file dei parametri Extract.

      • Riavviare l'estrazione.

    2. Per acquisire i dati sempre da un nodo diverso:

      • Modificare il file dei parametri Extract per connettersi al nodo desiderato, ad esempio Node3.

        USERIDALIAS node3
      • Riavviare l'estrazione.

Tipi di dati PostgreSQL supportati

Di seguito è riportata una lista dei tipi di dati PostgreSQL supportati da Oracle GoldenGate insieme alle limitazioni di questo supporto.

Tipo di dati array gestione

PostgreSQL supporta array di vari tipi built-in e UDT. A partire dalla release 26ai di Oracle GoldenGate, Oracle GoldenGate Extract e Replicat supportano il tipo di dati PostgreSQL array dei tipi seguenti:

I tipi di dati real, double e numeric supportano i valori numerici speciali NaN e Infinity/-Infinity.

Per ulteriori informazioni sui tipi di dati in base ai database che supportano valori speciali, vedere Valori speciali supportati dai tipi di dati del database.

Sia il caricamento iniziale che l'estrazione CDC supportano questi tipi di array.

Nota: l'estrazione del caricamento iniziale non supporta PostgreSQL array del tipo di dati time.

Limitazioni del supporto

Tipi di dati PostgreSQL non supportati

Oracle GoldenGate for PostgreSQL non supporta i tipi di dati riportati di seguito.

Oggetti e operazioni supportati per PostgreSQL

Tabelle, viste e viste materializzate

Le tabelle da includere per l'acquisizione e la consegna devono soddisfare i seguenti requisiti e includere solo i tipi di dati elencati in Tipi di dati PostgreSQL supportati.

Limitazioni

Sequenze e colonne identità