PostgreSQL: Tipos de Dados, Objetos e Operações Suportados

O Oracle GoldenGate for PostgreSQL suporta a captura e a entrega da carga inicial e dados transacionais para as versões suportadas do banco de dados PostgreSQL.

O Oracle GoldenGate for PostgreSQL suporta o mapeamento, a filtragem e a transformação de dados de origem, a menos que seja observado o contrário neste documento, bem como a replicação de dados derivados de outros bancos de dados de origem suportados pelo Oracle GoldenGate, em bancos de dados PostgreSQL.

Bancos de Dados Suportados

Estas são as limitações e os bancos de dados suportados para o Oracle GoldenGate for PostgreSQL:

Considerações sobre Alta Disponibilidade

O Oracle GoldenGate suporta a captura de dados de alteração da configuração de Alta Disponibilidade PostgreSQL. Essa funcionalidade só está disponível no banco de dados PostgreSQL versões 16 e posteriores. A captura de dados de alteração pode ser configurada no servidor principal ou em qualquer servidor stand-by somente para leitura na configuração de Alta Disponibilidade. Para evitar possível perda de dados e intervenção manual em casos de failover, o Oracle GoldenGate recomenda que a configuração de Alta Disponibilidade seja configurada usando replicação síncrona.

Consulte os procedimentos do Oracle GoldenGate para obter o ID do Documento de Failover de Alta Disponibilidade PostgreSQL 2818379.1 para obter mais detalhes sobre possíveis cenários de perda de dados e intervenção manual.

Para configurar a Extração CDC de uma configuração de Alta Disponibilidade PostgreSQL, execute as seguintes tarefas: 1. O Extract pode ser configurado para capturar dados do servidor principal ou de um servidor stand-by somente para leitura na configuração de Alta Disponibilidade.

  1. Quando o Extract estiver configurado em um nó (principal ou stand-by), o slot de replicação com o mesmo nome deverá ser criado em todos os outros nós na configuração de Alta Disponibilidade ao mesmo tempo, antes de iniciar a captura de dados.

    1. Use o comando REGISTER EXTRACT para criar o slot de replicação em um servidor (em que o Extract está configurado), conforme mostrado no seguinte exemplo:

      REGISTER EXTRACT exte
    2. Imediatamente após registrar o Extract, crie o slot de replicação com o mesmo nome. Você deve usar o mesmo nome de slot de replicação em todos os outros nós na configuração de Alta Disponibilidade explicitamente.

      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. Estabeleça conexão com o banco de dados correspondente e execute a instrução pg_create_logical_replication_slot do PSQL. Observação: OBSERVAÇÃO IMPORTANTE PARA CRIAÇÃO DE SLOT DE REPLICAÇÃO EM STANDBY: Quando a criação do SLOT de replicação é tentada no servidor stand-by somente para leitura (usando o comando REGISTER EXTRACT ou a instrução pg_create_logical_replication_slot), a operação é concluída somente depois que algum DML (pode ser qualquer DML aleatório) é executado em qualquer tabela no servidor principal na configuração de alta disponibilidade. Como alternativa, a funcionalidade de pulsação pode ser ativada no servidor principal, o que pode fazer com que a atividade DML necessária no principal conclua a criação do slot de replicação no servidor stand-by.

  1. Os comandos ADD TRANDATA ou DELETE TRANDATA não são suportados em nenhum servidor stand-by somente para leitura na configuração de alta disponibilidade do PostgreSQL. A definição REPLICA IDENTITY de qualquer tabela no servidor stand-by somente para leitura seria a mesma da definição REPLICA IDENTITY da tabela correspondente no servidor principal.

  2. Para usar a funcionalidade de pulsação quando a captura de dados é configurada em um servidor stand-by somente leitura, a funcionalidade de pulsação deve ser ativada no servidor principal.

  3. No caso de failover, o arquivo de parâmetros de extração deve ser modificado para estabelecer conexão com o nó desejado (principal/stand-by, com base no requisito) para continuar a captura de dados após o failover.

    Exemplo

    Considere uma situação em que há três nós no cluster de alta disponibilidade PostgreSQL, com aliases de conexão correspondentes:

    Node1 (principal atual) com o alias de conexão correspondente: node1

    Node2 (stand-by) com o alias de conexão correspondente: node2

    Node3 (stand-by) com o alias de conexão correspondente: node3

    Antes do failover, se o Extract estiver configurado para capturar dados de um dos nós (como node2), o arquivo de parâmetros do Extract conterá uma entrada semelhante à seguinte:

    USERIDALIAS node2

    No caso de um failover, para o nó primário (node1) fica inativo e o nó secundário (node2) se torna o novo primário, então pode haver duas possibilidades:

    1. Para continuar a captura de dados do mesmo node2:

      • Nenhuma alteração é necessária no arquivo de parâmetros de Extração.

      • Reinicie o processo Extract.

    2. Para capturar os dados sempre de um nó diferente:

      • Altere o arquivo de parâmetros do Extract para estabelecer conexão com o nó desejado, como Node3.

        USERIDALIAS node3
      • Reinicie o processo Extract.

Tipos de Dados PostgreSQL Suportados

Veja uma lista de tipos de dados PostgreSQL que o Oracle GoldenGate suporta, juntamente com as limitações desse suporte.

Tratando o Tipo de Dados da Matriz

O PostgreSQL suporta o array de vários tipos incorporados e UDT. A partir do Oracle GoldenGate release 26ai, o Oracle GoldenGate Extract e Replicat suportam o tipo de dados PostgreSQL array dos seguintes tipos:

Os tipos de dados real, double, numeric suportam os valores numéricos especiais NaN e Infinity/-Infinity.

Para obter mais informações sobre tipos de dados por bancos de dados que suportam valores especiais, consulte Valores Especiais Suportados por Tipos de Dados de Banco de Dados.

Tanto a carga inicial quanto a Extração CDC suportam esses tipos de matriz.

Observação: A Extração de carga inicial não suporta PostgreSQL array do tipo de dados time.

Limitações do Suporte

Tipos de Dados PostgreSQL Não Suportados

O Oracle GoldenGate for PostgreSQL não suporta os seguintes tipos de dados:

Objetos e Operações Suportados para PostgreSQL

Tabelas, Views e Views Materializadas

As tabelas a serem incluídas para captura e entrega devem atender aos requisitos a seguir e devem incluir apenas os tipos de dados listados em Tipos de Dados PostgreSQL Suportados.

Limitações

Sequências e Colunas de Identidade