Instanciação Precisa para PostgreSQL Usando Extração de Carga Inicial

A sincronização de dados de um banco de dados de origem PostgreSQL para um destino do Oracle GoldenGate pode ser realizada com o método opcional de usar a instanciação precisa. Esse método foi introduzido com o Oracle GoldenGate 21c (21.8.0).

A instanciação precisa tem a vantagem de não exigir nenhum tratamento de colisão no Replicat de destino. Isso é importante para alvos que não suportam o tratamento de colisões, como arquivos simples. Este método usa um snapshot do banco de dados para sincronizar a saída do Extract de carga inicial com a posição inicial do Extract de Captura de Dados de Alteração. Este snapshot é gerenciado pelo Extract de carga inicial, portanto não é possível que vários Extracts de carga inicial usem o mesmo snapshot. Portanto, esse método não é suportado ao usar vários Extracts de carga inicial para paralelizar a carga de trabalho.

O exemplo a seguir usa o Admin Client na Arquitetura de Microsserviços. Supõe-se que você esteja familiarizado com o Oracle GoldenGate e tenha configurado os bancos de dados de origem e destino corretamente, com todos os pré-requisitos necessários. Essas etapas exigem um mínimo de 21c do Oracle GoldenGate (21.8.0) ou mais recente.

Execute as seguintes etapas para configurar os processos de carregamento inicial e sincronização de ponta a ponta usando o método de instanciação preciso:

  1. Registre uma Extração de Captura de Dados de Alteração (CDC) no banco de dados de origem PostgreSQL.

    DBLOGIN USERIDALIAS src_alias
    REGISTER EXTRACT extecdc

    Neste exemplo, extecdc é o nome do Extract. Para Arquitetura de Microsserviços, use DBLOGIN USERIDALIAS para configuração de conexão de banco de dados.

  2. Crie um processo Extract de carga inicial.

    ADD EXTRACT extinit, SOURCEISTABLE
    EDIT PARAMS extinit

    O arquivo de parâmetros de Extract de carga inicial deve conter o parâmetro INITIALLOADOPTIONS USESNAPSHOT. Por exemplo:

    EXTRACT extinit
    INITIALLOADOPTIONS USESNAPSHOT
    SOURCEDB USERIDALIAS src_alias
    EXTFILE west/ei, MEGABYTES 500, PURGE
    TABLE public.*;

    Consulte INITIALLOADOPTIONS para saber mais sobre o uso desse parâmetro com a opção USESNAPSHOT.

  3. Inicie o processo Extract de carga inicial.

    START EXTRACT extinit
  4. Quando o Extract de carga inicial tiver sido concluído e interrompido, revise seu arquivo de relatório para determinar o LSN de posicionamento a ser usado pelo Extract CDC.

    Por exemplo, na saída a seguir, o LSN de posicionamento a ser usado pelo CDC Extract será '0/173F770'.

    INFO    OGG-100001 A consistent point is
    established in database 'tpcc' using replication slot ogg_initx_1234 at LSN 0/173F770
    and snapshot name '00000003-00000026-1'.
    INFO    OGG-100002 Create or position the CDC
    extract to LSN 0/173F770. Example: ADD EXTRACT <cdc-extract> TRANLOG LSN 0/173F770
    
    or ALTER EXTRACT <cdc-extract> LSN 0/173F770.
  5. Criar e iniciar um Replicat de carga inicial que lê a trilha da extração de carga inicial.

    DBLOGIN USERIDALIAS tgt_alias
    ADD CHECKTPOINTTABLE ggs.checkpoint
    ADD REPLICAT repinit, EXTTRAIL west/ei, CHECKPOINTTABLE ggs.ggcheckpoint
    START REPLICAT repinit

    Aqui está um exemplo do arquivo de parâmetros Replicat de carga inicial:

    REPLICAT repinit
    TARGETDB USERIDALIAS tgt_alias
    BATCHSQL
    MAP public.*, TARGET public.*;
  6. Adicione e inicie o Extract CDC (extecdc) usando o valor LSN consistente mencionado no arquivo de relatório Extract de carga inicial.

    ADD EXTRACT extecdc, TRANLOG, LSN 0/173F770
    ADD EXTTRAIL ea, EXTRACT extecdc
    START EXTRACT extecdc

    Veja a seguir um exemplo de arquivo de parâmetros de Extração CDC:

    EXTRACT extecdc
    SOURCEDB USERIDALIAS src_alias
    EXTTRAIL west/ea
    TABLE public.*;
  7. Quando o processo Replicat de carga inicial tiver processado todos os registros de carga iniciais, adicione e inicie um processo Replicat CDC que leia a trilha do processo Extract CDC.

    ADD REPLICAT repecdc, EXTTRAIL west/ea, CHECKPOINTTABLE ggs.ggcheckpoint
    START REPLICAT repecdc
  8. Monitore o atraso no Extract do CDC e no Replicat do CDC e, quando ambos estiverem próximos de zero segundos, o fluxo de dados do banco de dados de origem para o de destino deverá estar próximo do tempo real.