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:
-
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 extecdcNeste exemplo,
extecdcé o nome do Extract. Para Arquitetura de Microsserviços, useDBLOGIN USERIDALIASpara configuração de conexão de banco de dados. -
Crie um processo Extract de carga inicial.
ADD EXTRACT extinit, SOURCEISTABLE EDIT PARAMS extinitO 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
INITIALLOADOPTIONSpara saber mais sobre o uso desse parâmetro com a opçãoUSESNAPSHOT. -
Inicie o processo Extract de carga inicial.
START EXTRACT extinit -
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. -
Criar e iniciar um Replicat de carga inicial que lê a trilha da extração de carga inicial.
DBLOGIN USERIDALIAS tgt_aliasADD CHECKTPOINTTABLE ggs.checkpointADD REPLICAT repinit, EXTTRAIL west/ei, CHECKPOINTTABLE ggs.ggcheckpointSTART REPLICAT repinitAqui está um exemplo do arquivo de parâmetros Replicat de carga inicial:
REPLICAT repinit TARGETDB USERIDALIAS tgt_alias BATCHSQL MAP public.*, TARGET public.*; -
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/173F770ADD EXTTRAIL ea, EXTRACT extecdcSTART EXTRACT extecdcVeja a seguir um exemplo de arquivo de parâmetros de Extração CDC:
EXTRACT extecdc SOURCEDB USERIDALIAS src_alias EXTTRAIL west/ea TABLE public.*; -
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.ggcheckpointSTART REPLICAT repecdc -
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.