Instanciação Precisa para Oracle Usando Extração de Carga Inicial
Saiba como adicionar a Extração de Carga Inicial usando o Admin Client.
O método de carga inicial é altamente adequado para instanciação nos seguintes cenários:
-
Carregando o banco de dados de destino com um pequeno conjunto de tabelas do subconjunto do banco de dados de origem.
-
Carregando dados em um ambiente heterogêneo
O Extract de carga inicial funciona lendo dados diretamente das tabelas de origem e gravando-os em um EXTFILE. Ele se conecta diretamente ao banco de dados e extrai as alterações. Conforme mostrado no diagrama a seguir, há duas fases ao executar uma instanciação de carga inicial. EXTINIT Extract é a carga inicial do processo Extract e EXTPRM é o processo Extract principal. O processo EXTPRM está configurado, mas não foi iniciado para replicação contínua. Depois que o Extract de carga inicial concluir a instanciação, o processo de replicação contínua será iniciado a partir do ponto em que a carga inicial foi iniciada.

Para configurar esse processo de Extração, você precisará de uma combinação de processos de carregamento inicial baseado em arquivo e de captura de dados de alteração (CDC). O processo de instanciação usando o Extract de carga inicial inclui as seguintes tarefas:
-
Adicionar e configurar um Extract de Carga Inicial: Este Extract é usado para copiar o conteúdo existente de uma ou mais tabelas da origem para o banco de dados de destino.
-
Configurar Captura de Dados de Alteração: Usado para copiar alterações transacionais da origem para o banco de dados de destino. Observação: A Arquitetura de Microsserviços não suporta o carregamento de dados com uma carga direta do Oracle GoldenGate.
O processo de carregamento inicial baseado em arquivo é o método preferido para executar a replicação de dados no MA. Os componentes principais são:
-
Extract e Replicat de Carga Inicial: Replica o conteúdo existente das tabelas do banco de dados.
-
Extract e Replicat Primários: Replica os dados de alteração das tabelas do banco de dados.
-
Caminhos de Distribuição: Transfere arquivos de trilha para o sistema de destino.
Antes de começar, certifique-se de que o alias de credencial do banco de dados (USERIDALIAS) seja criado.
Você pode usar a interface Web do Oracle GoldenGate, o Admin Client ou os comandos cURL para configurar essa configuração.
Etapa 1: Criar um Extract Principal
A instanciação precisa é usada para replicar recursos de banco de dados corretamente do banco de dados de origem para o de destino. O Extract principal é iniciado primeiro para iniciar a captura de dados de alteração antecipadamente. A instanciação precisa se baseia nas seguintes suposições:
Observação: para que a instanciação precisa funcione, o SCN de instanciação deve vir após o SCN de registro.
-
O Extract principal foi iniciado. É responsável pela captura de dados de alteração e pela observação de seu SCN de registro.
-
O banco de dados é monitorado. O banco de dados aguarda que o SCN da transação aberta mais antiga seja exibido após o SCN de registro. Este é o SCN de instanciação.
-
O SCN de instanciação é usado ao criar os processos Extract e Replicat de carga inicial.
-
O SCN de instanciação é usado para criar o Replicat principal, depois que a replicação de carga inicial é concluída.
-
Para MySQL, a instanciação precisa só é aplicável para bancos de dados de origem e destino MySQL e é implementada usando o utilitário
Dumpdo shell MySQL. Para obter mais informações sobre o utilitárioDump, consulte Utilitário de Dump MySQL.
Para começar, crie e inicie o Extract principal EXTPRIM do AdminClient, conforme mostrado no seguinte exemplo:
Comando:
OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !
Saída:
Using default deployment 'OGGDEP'
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin
Saída:
Successfully logged into database.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP) 3> ADD EXTRACT extprim INTEGRATED TRANLOG BEGIN NOW
Saída:
2018-03-16T13:37:07Z INFO OGG-08100 EXTRACT (Integrated) added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE
Saída:
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS extprim
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS extprim
Saída:
--
-- E X T P R I M . p r m
-- Primary Extract Parameter File
--
Extract EXTPRIM
UseridAlias oggadmin
ExtTrail AA
Table user01.*;
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> ADD EXTTRAIL aa EXTRACT extprim
Saída:
2018-03-16T13:37:55Z INFO OGG-08100 EXTTRAIL added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 8> START EXTRACT extprim
Saída:
2018-03-16T13:38:02Z INFO OGG-00975 EXTRACT EXTPRIM starting
2018-03-16T13:38:02Z INFO OGG-15426 EXTRACT EXTPRIM started
Neste exemplo, oggadmin é o alias de credencial do banco de dados.
Depois de criar o processo Extract principal, recupere o número de registro SCN. Execute o comando REGISTER EXTRACT no AdminClient. O exemplo a seguir recupera um valor SCN de 1608891.
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE
Saída:
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
Etapa 2: Determinar o SCN de Instanciação
O Serviço de Administração na Arquitetura de Microsserviços do Oracle GoldenGate fornece um ponto final para recuperar informações sobre transações de banco de dados abertas. Essas informações podem ser usadas para identificar o SCN a ser usado ao instanciar o Extract de carga inicial.
No exemplo a seguir, o SCN de instanciação é 1609723, que é o SCN mais antigo de todas as transações em aberto que também passou do SCN de registro de 1608891, identificado na etapa anterior.
-- Query for active transactions
--
SELECT T.START_SCN, T.STATUS TSTATUS, T.START_DATE,
S.SID, S.SERIAL#, S.INST_ID, S.USERNAME, S.OSUSER, S.STATUS SSTATUS, S.LOGON_TIME
FROM gv$transaction T
INNER JOIN gv$session S
ON s.saddr = t.ses_addr
UNION ALL
--
-- Query for current status
--
SELECT CURRENT_SCN, 'CURRENT', CURRENT_DATE,
NULL, NULL, NULL, 'SYS', NULL, NULL, NULL
from v$database
ORDER BY 1;
Os resultados dessa consulta podem ser usados para determinar o SCN de instanciação. Os resultados dessa consulta específica são:
1538916 ACTIVE 2018-03-16 18:10:31.0 3865 9176 1 OGGADMIN oracle INACTIVE 2018-03-16 18:10:26.0 1540555 CURRENT 2018-03-16 18:21:50.0 SYS
O SCN usado para instanciar o Extract de carga inicial é obtido usando o SQL*Plus. No exemplo a seguir, a consulta SQL usa o valor de SCN de instanciação como 1624963, que é o SCN mais antigo de todas as transações abertas que também passaram do SCN de registro de 1608891.
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 14> SHELL ECHO 'SELECT MIN(START_SCN) FROM gv$transaction;' | ${ORACLE_HOME}/bin/sqlplus -S / as sysdba
MIN(START_SCN)
--------------
1624963
Se não houver transações abertas, essa consulta SQL retornará um resultado vazio. Uma consulta detalhada que leva em conta a situação em que não há transações em aberto é:
SELECT MIN(SCN) as INSTANTIATION_SCN
FROM (SELECT MIN(START_SCN) as SCN
FROM gv$transaction
UNION ALL
SELECT CURRENT_SCN
FROM gv$database);
Etapa 3: Criar e Iniciar o Replicat de Carga Inicial
Antes de iniciar esta etapa, verifique se a tabela de checkpoint oggadmin.checkpoints já existe no sistema de destino. O Replicat de carga inicial é responsável por preencher o banco de dados de destino. Execute o seguinte comando no AdminClient para criar e iniciar o Replicat de carga inicial (REPINIT):
Comando:
OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !
Saída:
Using default deployment 'OGGDEP'
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin
Saída:
Successfully logged into database.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 3> ADD CHECKPOINTTABLE oggadmin.checkpoints
Saída:
ADD "oggadmin.checkpoints" succeeded.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> ADD REPLICAT repinit EXTTRAIL dd CHECKPOINTTABLE oggadmin.checkpoints
Saída:
2018-03-16T13:56:41Z INFO OGG-08100 REPLICAT added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS repinit
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS repinit
Saída:
--
-- R E P I N I T . p r m
-- File-Based Initial Load Replicat Parameter File
--
Replicat REPINIT
UseridAlias oggadmin
Map user01.*
Target user01.*;
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> START REPLICAT repinit
Saída:
2018-03-16T13:58:21Z INFO OGG-00975 REPLICAT REPINIT starting
2018-03-16T13:58:21Z INFO OGG-15426 REPLICAT REPINIT started
Etapa 4: Criar e iniciar o Extract de Carga Inicial
Usando o SCN de instanciação que você recuperou (1624963), o Extract de carga inicial é criado para gravar o conteúdo das tabelas de banco de dados na trilha. Crie e inicie o Extract de carga inicial, EXTINIT.
A partir do Oracle GoldenGate 26ai, para carregamento inicial, as views da tabela Extract não serão resolvidas ao resolver tabelas com um parâmetro TABLE que inclui curingas. Se as views precisarem ser incluídas no Extract de carga inicial, elas precisarão ser especificadas em um parâmetro TABLE separado sem qualquer caractere curinga.
Por exemplo, se houver uma tabela hr.employees e uma view hr.employees_view. Para Extract de carga inicial, se você especificar o seguinte no arquivo de parâmetros do Extract de carga inicial:
TABLE hr.*;
Somente os dados da tabela hr.employees serão incluídos no Extract de carga inicial.
Se você precisar incluir o hr.employees_view na carga inicial, adicione o seguinte parâmetro ao arquivo de parâmetros Extract de carga inicial:
TABLE SCOTT.TAB1_VIEW;
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 15> ADD EXTRACT extinit SOURCEISTABLE
Saída:
2018-03-16T14:08:38Z INFO OGG-08100 EXTRACT added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 16> EDIT PARAMS extinit
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 17> VIEW PARAMS extinit
Saída:
--
-- E X T I N I T . p r m
-- File-Based Initial Load Extract Parameter File
--
Extract EXTINIT
UseridAlias oggadmin
ExtFile CC Megabytes 2000 Purge
Table user01.*, SQLPredicate "As Of SCN 1624963";
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 18> START EXTRACT extinit
Saída:
2018-03-16T14:13:42Z INFO OGG-00975 EXTRACT EXTINIT starting
2018-03-16T14:13:42Z INFO OGG-15426 EXTRACT EXTINIT started
Etapa 5: Criar os Caminhos de Distribuição
Crie dois caminhos de distribuição (AABB e CCDD) para copiar as trilhas locais para o host remoto do Admin Client:
Comando:
OGG (https://oggdep.example.com:9100 oggdep) 15> ADD DISTPATH aabb SOURCE TRAIL://oggdep.example.com:9102/services/v2/sources?trail=AA target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=BB
Saída:
2018-03-16T17:28:27Z INFO OGG-08511 The path 'AABB' has been added.
Comando:
OGG (https://oggdep.oggdevops.us:9100 oggdep) 16> ADD DISTPATH ccdd SOURCE TRAIL://oggdep.example.com:9102/services/v2/sources?trail=CC target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=DD
Saída:
2018-03-16T17:28:35Z INFO OGG-08511 The path 'CCDD' has been added.
Comando:
OGG (https://oggdep.example:9100 oggdep) 17> START DISTPATH aabb
Saída:
2018-03-16T17:28:42Z INFO OGG-08513 The path 'AABB' has been started.
Comando:
OGG (https://oggdep.example.com:9100 oggdep) 18> START DISTPATH ccdd
Saída:
2018-03-16T17:28:47Z INFO OGG-08513 The path 'CCDD' has been started.
Se você usar o protocolo ogg em vez de wss, deverá usar a opção TARGETTYPE. A sintaxe nesse caso seria:
ADD DISTPATH path-name SOURCE source-uri TARGET target-uri [ TARGETTYPE ( MANAGER | COLLECTOR | RECVSRVR ) ]
TARGETTYPE especifica o tipo de destino caso o caminho de distribuição use o protocolo legado. Este argumento só é válido se o esquema de URI de destino for ogg.
Etapa 6: Criar o Processo de Replicação Principal
Depois que a carga inicial Extract e Replicat for concluída, eles poderão ser excluídos. Em seguida, o processo Replicat principal é criado no host remoto para aplicar dados de alteração ao banco de dados de destino.
Use o AdminClient para criar o processo Replicat principal. Observação: O processo Replicat principal é iniciado no SCN de instanciação.
Comando:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 12> ADD REPLICAT repprim EXTTRAIL bb CHECKPOINTTABLE oggadmin.checkpoints
Saída:
2018-03-16T17:37:46Z INFO OGG-08100 REPLICAT added.
Comando: EDIT PARAMS
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 13> EDIT PARAMS repprim
Comando:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 14> VIEW PARAMS repprim
Saída:
--
-- R E P P R I M . p r m
-- Replicat Parameter File
--
Replicat REPPRIM
USERIDALIAS oggadmin
Map user01.*
Target user01.*;
Comando:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 15> START REPLICAT repprim ATCSN 1624963
Saída:
2018-03-16T17:38:10Z INFO OGG-00975 REPLICAT REPPRIM starting
2018-03-16T17:38:10Z INFO OGG-15426 REPLICAT REPPRIM started