PostgreSQL: tipos de dato, objetos y operaciones soportados

Oracle GoldenGate para PostgreSQL soporta la captura y entrega de datos transaccionales y de carga inicial para las versiones de base de datos PostgreSQL soportadas.

Oracle GoldenGate for PostgreSQL soporta la asignación, el filtrado y la transformación de datos de origen, a menos que se indique lo contrario en este documento, así como la replicación de datos derivados de otras bases de datos de origen soportadas por Oracle GoldenGate en bases de datos PostgreSQL.

Bases de datos soportadas

Las siguientes son bases de datos soportadas y limitaciones para Oracle GoldenGate para PostgreSQL:

Consideraciones de alta disponibilidad

Oracle GoldenGate soporta la captura de datos de cambio desde la configuración de alta disponibilidad PostgreSQL. Esta funcionalidad solo está disponible en las versiones 16 y posteriores de la base de datos PostgreSQL. La captura de datos de cambio se puede configurar en el servidor principal o en cualquier servidor en espera de solo lectura en la configuración de alta disponibilidad. Para evitar posibles pérdidas de datos y la intervención manual en casos de failover, Oracle GoldenGate recomienda configurar la configuración de alta disponibilidad mediante la replicación síncrona.

Consulte los procedimientos de Oracle GoldenGate para el ID de documento de failover de alta disponibilidad PostgreSQL 2818379.1 para obtener más información sobre posibles escenarios de pérdida de datos e intervención manual.

Para configurar el Extract de CDC desde una configuración de alta disponibilidad PostgreSQL, realice las siguientes tareas: 1. Extract se puede configurar para capturar datos del servidor principal o de un servidor en espera de solo lectura en la configuración de alta disponibilidad.

  1. Cuando el Extract se configura en un nodo (principal o en espera), la ranura de replicación con el mismo nombre se debe crear en todos los demás nodos de la configuración de alta disponibilidad al mismo tiempo, antes de iniciar la captura de datos.

    1. Utilice el comando REGISTER EXTRACT para crear la ranura de replicación en un servidor (donde se configura Extract), como se muestra en el siguiente ejemplo:

      REGISTER EXTRACT exte
    2. Inmediatamente después de registrar Extract, cree la ranura de replicación con el mismo nombre. Debe utilizar explícitamente el mismo nombre de ranura de replicación en todos los demás nodos de la configuración de alta disponibilidad.

      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. Conéctese a la base de datos correspondiente y ejecute la sentencia pg_create_logical_replication_slot desde PSQL. Nota: NOTA IMPORTANTE PARA LA CREACIÓN DE SLOT DE REPLICACIÓN EN STANDBY: cuando se intenta crear la ranura de replicación en el servidor en espera de solo lectura (mediante el comando REGISTER EXTRACT o la sentencia pg_create_logical_replication_slot), la operación se completa solo después de que se ejecuta algún DML (puede ser cualquier DML aleatorio) en cualquier tabla del servidor principal en la configuración de alta disponibilidad. También se puede activar la funcionalidad de latido en el servidor principal, lo que puede hacer que la actividad DML necesaria en el servidor principal complete la creación de la ranura de replicación en el servidor en espera.

  1. Los comandos ADD TRANDATA o DELETE TRANDATA no están soportados en ningún servidor en espera de solo lectura en la configuración de alta disponibilidad PostgreSQL. El valor REPLICA IDENTITY de cualquier tabla en el servidor en espera de sólo lectura sería el mismo que el valor REPLICA IDENTITY de la tabla correspondiente en el servidor principal.

  2. Para utilizar la funcionalidad de latido cuando la captura de datos se configura en un servidor en espera de solo lectura, la funcionalidad de latido se debe activar en el servidor principal.

  3. En caso de failover, el archivo de parámetros de extracción se debe modificar para conectarse al nodo deseado (principal/en espera, según el requisito) para continuar la captura de datos después de la operación de failover.

    Ejemplo

    Considere una situación en la que hay tres nodos en el cluster de alta disponibilidad PostgreSQL, con los alias de conexión correspondientes:

    Node1 (principal actual) con el alias de conexión correspondiente: node1

    Node2 (en espera) con el alias de conexión correspondiente: node2

    Node3 (en espera) con el alias de conexión correspondiente: node3

    Antes del failover, si Extract está configurado para capturar datos de uno de los nodos (como node2), el archivo de parámetros Extract contendría una entrada similar a la siguiente:

    USERIDALIAS node2

    En caso de failover, el nodo primario (node1) se cae y el secundario (node2) se convierte en el nuevo primario, puede haber dos posibilidades:

    1. Para continuar con la captura de datos desde el mismo node2:

      • No es necesario realizar cambios en el archivo de parámetros de Extract.

      • Reinicie el Extract.

    2. Para capturar los datos siempre desde un nodo diferente:

      • Cambie el archivo de parámetros Extract para conectarse al nodo deseado, como Node3.

        USERIDALIAS node3
      • Reinicie el Extract.

Tipos de datos PostgreSQL soportados

A continuación, se muestra una lista de los tipos de dato PostgreSQL que soporta Oracle GoldenGate junto con las limitaciones de este soporte.

Manejo del tipo de datos de matriz

PostgreSQL soporta array de varios tipos incorporados y UDT. A partir de la versión 26ai de Oracle GoldenGate, Oracle GoldenGate Extract y Replicat soportan el tipo de dato PostgreSQL array de los siguientes tipos:

Los tipos de dato real, double, numeric soportan los valores numéricos especiales NaN y Infinity/-Infinity.

Para obtener más información sobre los tipos de dato por bases de datos que soportan valores especiales, consulte Valores especiales soportados por tipos de dato de base de datos.

Tanto la carga inicial como el extracto de CDC admiten estos tipos de matriz.

Nota: El Extract de carga inicial no soporta PostgreSQL array del tipo de dato time.

Limitaciones del soporte

Tipos de dato PostgreSQL no soportados

Oracle GoldenGate para PostgreSQL no soporta los siguientes tipos de dato:

Objetos y operaciones soportados para PostgreSQL

Tablas, Vistas y Vistas Materializadas

Las tablas que se van a incluir para la captura y entrega deben cumplir los siguientes requisitos y solo deben incluir los tipos de dato que se muestran en Tipos de dato PostgreSQL soportados.

Limitaciones

Secuencias y Columnas de Identidad