PostgreSQL : types de données, objets et opérations pris en charge

Oracle GoldenGate pour PostgreSQL prend en charge la capture et la livraison des données de chargement initial et transactionnelles pour les versions de base de données PostgreSQL prises en charge.

Oracle GoldenGate pour PostgreSQL prend en charge la mise en correspondance, le filtrage et la transformation des données source, sauf indication contraire dans ce document, ainsi que la réplication des données dérivées d'autres bases de données source prises en charge par Oracle GoldenGate en bases de données PostgreSQL.

Bases de données prises en charge

Voici les bases de données prises en charge et les limites d'Oracle GoldenGate pour PostgreSQL :

Considérations relatives à la haute disponibilité

Oracle GoldenGate prend en charge la capture des données de modification à partir de la configuration haute disponibilité PostgreSQL. Cette fonctionnalité est disponible uniquement sur la base de données PostgreSQL versions 16 et ultérieures. La capture des données de modification peut être configurée sur le serveur principal ou sur tout serveur de secours en lecture seule dans la configuration Haute disponibilité. Pour éviter toute perte de données et toute intervention manuelle en cas de basculement, Oracle GoldenGate recommande de configurer la haute disponibilité à l'aide de la réplication synchrone.

Reportez-vous aux procédures Oracle GoldenGate pour PostgreSQL High Availability Failover Doc ID 2818379.1 afin d'obtenir plus de détails sur les éventuels scénarios de perte de données et d'intervention manuelle.

Pour configurer l'extraction CDC à partir d'une configuration de haute disponibilité PostgreSQL, effectuez les tâches suivantes : 1. Le processus Extract peut être configuré pour capturer des données à partir du serveur principal ou d'un serveur de secours en lecture seule dans la configuration Haute disponibilité.

  1. Lorsque le processus Extract est configuré sur un noeud (principal ou de secours), l'emplacement de réplication portant le même nom doit être créé sur tous les autres noeuds de la configuration Haute disponibilité en même temps, avant de démarrer la capture des données.

    1. Utilisez la commande REGISTER EXTRACT pour créer l'emplacement de réplication sur un serveur (où l'extraction est configurée), comme indiqué dans l'exemple suivant :

      REGISTER EXTRACT exte
    2. Immédiatement après l'enregistrement de l'extraction, créez l'emplacement de réplication avec le même nom. Vous devez utiliser explicitement le même nom d'emplacement de réplication sur tous les autres noeuds de la configuration Haute disponibilité.

      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. Connectez-vous à la base de données correspondante et exécutez l'instruction pg_create_logical_replication_slot à partir de PSQL. Remarque : REMARQUE IMPORTANTE POUR REPLICATION SLOT CREATION ON STANDBY : lorsque la création de l'emplacement de réplication est tentée sur le serveur de secours en lecture seule (à l'aide de la commande REGISTER EXTRACT ou de l'instruction pg_create_logical_replication_slot), l'opération se termine uniquement après l'exécution d'une LMD (n'importe quelle LMD aléatoire) sur n'importe quelle table du serveur principal dans la configuration de haute disponibilité. La fonctionnalité de signal d'activité peut également être activée sur le serveur principal, ce qui peut entraîner l'activité LMD requise sur le serveur principal, pour terminer la création de l'emplacement de réplication sur le serveur de secours.

  1. Les commandes ADD TRANDATA ou DELETE TRANDATA ne sont prises en charge sur aucun serveur de secours en lecture seule dans la configuration de haute disponibilité PostgreSQL. Le paramètre REPLICA IDENTITY de n'importe quelle table sur le serveur de secours en lecture seule est identique au paramètre REPLICA IDENTITY de la table correspondante sur le serveur principal.

  2. Pour utiliser la fonctionnalité de signal d'activité lorsque la capture de données est configurée sur un serveur de secours en lecture seule, la fonctionnalité de signal d'activité doit être activée sur le serveur principal.

  3. En cas de basculement, le fichier de paramètres d'extraction doit être modifié pour se connecter au noeud souhaité (principal/de secours, selon les besoins) afin de poursuivre la capture des données après le basculement.

    Exemple

    Prenons l'exemple d'une situation où le cluster de haute disponibilité PostgreSQL comporte trois noeuds, avec les alias de connexion correspondants :

    Node1 (principal actuel) avec l'alias de connexion correspondant : node1

    Node2 (de secours) avec l'alias de connexion correspondant : node2

    Node3 (de secours) avec l'alias de connexion correspondant : node3

    Avant le basculement, si le processus Extract est configuré pour capturer des données à partir de l'un des noeuds (par exemple, node2), le fichier de paramètres Extract contient une entrée similaire à la suivante :

    USERIDALIAS node2

    En cas de basculement, le noeud principal (node1) tombe en panne et le noeud secondaire (node2) devient le nouveau noeud principal, alors il peut y avoir deux possibilités :

    1. Pour poursuivre la capture de données à partir du même fichier node2 :

      • Aucune modification n'est requise dans le fichier de paramètres Extract.

      • Redémarrez l'extraction.

    2. Pour capturer les données toujours à partir d'un autre noeud :

      • Modifiez le fichier de paramètres Extract pour vous connecter au noeud souhaité, tel que Node3.

        USERIDALIAS node3
      • Redémarrez l'extraction.

Types de données PostgreSQL pris en charge

Voici la liste des types de données PostgreSQL pris en charge par Oracle GoldenGate, ainsi que les limites de cette prise en charge.

Gestion du type de données de tableau

PostgreSQL prend en charge array de différents types intégrés et UDT. A partir de la version 26ai d'Oracle GoldenGate, les processus Extract et Replicat d'Oracle GoldenGate prennent en charge le type de données PostgreSQL array des types suivants :

Les types de données real, double et numeric prennent en charge les valeurs numériques spéciales NaN et Infinity/-Infinity.

Pour plus d'informations sur les types de données par base de données qui prennent en charge des valeurs spéciales, reportez-vous à la section Special Values Supported by Database Data Types.

Le chargement initial et l'extraction CDC prennent en charge ces types de tableau.

Remarque : le processus Extract de chargement initial ne prend pas en charge le type de données PostgreSQL array de time.

Limites de prise en charge

Types de données PostgreSQL non pris en charge

Oracle GoldenGate pour PostgreSQL ne prend pas en charge les types de données suivants :

Objets et opérations pris en charge pour PostgreSQL

Tables, vues et vues matérialisées

Les tables à inclure pour la capture et la distribution doivent répondre aux exigences suivantes et ne doivent inclure que les types de données répertoriés sous Types de données PostgreSQL pris en charge.

Limites

Séquences et colonnes d'identité