Partilhar via


Transmita dados Oracle CDC para o Fabric Eventstream Kafka Endpoint com o Oracle GoldenGate

Neste tutorial, você aprenderá a usar o Oracle GoldenGate (OGG) para extrair e replicar dados CDC (change data capture) do banco de dados Oracle para o Microsoft Fabric Real-Time Intelligence usando o ponto de extremidade Kafka oferecido a partir da fonte de ponto de extremidade personalizada de um Eventstream. Essa configuração permite o processamento em tempo real de dados do Oracle CDC e permite enviá-los para vários destinos dentro da malha, como Eventhouse, Reflex, fluxo derivado ou destino de ponto de extremidade personalizado para análise posterior.

Neste tutorial, você irá:

  • Crie uma VM Oracle e o banco de dados Oracle.
  • Instale o Oracle GoldenGate (OGG) Core na VM Oracle.
  • Configure o banco de dados Oracle para OGG e o OGG Extract para extrair dados CDC.
  • Instale o Oracle GoldenGate (OGG) Big Data no Oracle VM.
  • Configure OGG Big Data para replicar os dados CDC para o endpoint Kafka do Eventstream.
  • Valide todo o fluxo de ponta a ponta do Oracle para o Eventstream.

Pré-requisitos

  • Obtenha acesso a um espaço de trabalho com permissões de Colaborador ou superiores, onde o seu fluxo de eventos está localizado.
  • Shell preferido: Windows, Linux ou Azure Shell.
  • Familiaridade com editores Unix como vi ou vim, e uma compreensão básica do X Server.

Criar VM Oracle e banco de dados

Esta seção fornece instruções sobre como usar comandos da CLI do Azure para criar uma máquina virtual Oracle e configurar um banco de dados dentro dela.

Criar máquina virtual Oracle

  1. Abra seu shell preferido para entrar em sua assinatura do Azure com o comando az login. Em seguida, siga as instruções na tela:

    $ az login
    
  2. Verifique o nome e o ID da subscrição que está a utilizar para se certificar de que é o correto:

    $ az account show
    
  3. Crie um grupo de recursos que é usado para agrupar todos os recursos do Azure para este tutorial:

    $ az group create --name esoggcdcrg --location eastus2
    
  4. Crie os recursos de rede necessários para este tutorial:

    1. Crie uma rede virtual (rede virtual) que é usada para as máquinas virtuais neste tutorial:
      $ az network vnet create --name oggVnet --resource-group esoggcdcrg --address-prefixes "10.0.0.0/16" --subnet-name oggSubnet1 --subnet-prefixes "10.0.0.0/24"
      
    2. Crie um grupo de segurança de rede (NSG):
      $ az network nsg create --resource-group esoggcdcrg --name oggVnetNSG
      
    3. Crie uma regra NSG para permitir o tráfego de rede dentro da rede virtual:
      $ az network nsg rule create --resource-group esoggcdcrg --nsg-name oggVnetNSG --name oggAllowVnet --protocol '*' --direction inbound --priority 3400 --source-address-prefix 'VirtualNetwork' --source-port-range '*' --destination-address-prefix 'VirtualNetwork' --destination-port-range '*' --access allow
      
    4. Crie uma regra NSG para permitir que a conexão RDP conecte a VM do Windows. Ele é usado para acessar a VM do Windows remotamente a partir de sua máquina Windows local:
      $ az network nsg rule create --resource-group esoggcdcrg --nsg-name oggAllowRDP --protocol '*' --direction inbound --priority 3410 --source-address-prefix '*' --source-port-range '*' --destination-address-prefix '*' --destination-port-range '3389' --access allow
      
    5. Crie uma regra NSG para negar todas as conexões de entrada:
      $ az network nsg rule create --resource-group esoggcdcrg --nsg-name oggDenyAllInBound --protocol '*' --direction inbound --priority 3500 --source-address-prefix '*' --source-port-range '*' --destination-address-prefix '*' --destination-port-range '*' --access deny
      
    6. Atribuir a NSG à sub-rede onde os nossos servidores estão hospedados:
      $ az network vnet subnet update --resource-group esoggcdcrg --vnet-name oggVNet --name oggSubnet1 --network-security-group oggVnetNSG
      
  5. Crie a máquina virtual Oracle:

    $ az vm create --resource-group esoggcdcrg --name oggVM --image Oracle:oracle-database:oracle_db_21:21.0.0 --size Standard_D2s_v3 --generate-ssh-keys --admin-username azureuser --vnet-name oggVnet --subnet oggSubnet1 --public-ip-address "" --nsg "" --zone 1
    

Criar e configurar a VM do X Server

Para criar o banco de dados Oracle, ele requer o uso de SSH para entrar na máquina virtual que foi criada na etapa anterior. Como a regra NSG definida anteriormente nega todas as conexões de entrada, mas permite conexões dentro da rede virtual e da porta RDP 3389, uma máquina virtual do Windows é criada para se conectar à máquina virtual Oracle. Esta máquina virtual do Windows também é usada para hospedar o servidor X, que deve receber a interface de instalação gráfica ao instalar o aplicativo principal GoldenGate na Oracle VM mais tarde.

  1. Substitua sua senha e execute o seguinte comando para criar uma VM de estação de trabalho Windows onde implantamos o X Server.

    $ az vm create --resource-group esoggcdcrg --name oggXServer --image MicrosoftWindowsDesktop:windows-11:win11-24h2-pro:26100.2605.241207 --size Standard_D2s_v3 --vnet-name oggVnet --subnet oggSubnet1 --public-ip-sku Standard --nsg "" --data-disk-delete-option Delete --os-disk-delete-option Delete --nic-delete-option Delete --security-type Standard --admin-username azureuser --admin-password <YOUR_OWN_PASSWORD>
    
  2. Depois de criado, vá para o portal do Azure para baixar o arquivo RDP do recurso oggXServer para que você possa usá-lo para acessar remotamente essa máquina Windows. Abra o arquivo RDP e use a senha especificada ao criar a VM do Windows (oggXServer).

    Captura de tela que mostra como criar a VM do Windows.

  3. Instale o WSL na VM do Windows (oggXServer) para que o SSH possa ser usado para se conectar ao Oracle VM (oggVM). Você também pode usar outras ferramentas SSH, como putty para se conectar também.

    PS C:\Users\azureuser> wsl --install -d Ubuntu
    

    Captura de tela que mostra como instalar o WSL na VM do Windows.

  4. Você precisa baixar a chave privada para entrar SSH no oggXServer do oggVM. Depois que a chave for baixada, use essa chave (mova essa chave para o diretório .ssh inicial da WSL) para entrar:

    $ ssh -i ~/.ssh/id_rsa.pem azureuser@10.0.0.4
    

    Captura de tela que mostra como atualizar a chave ssh.

  5. Conecte a VM Oracle com seu endereço IP privado com SSH.

    Captura de tela que mostra como obter o endereço IP privado.

Criar o banco de dados Oracle

Agora, você deve ser capaz de entrar na VM Oracle na VM do Windows do servidor X (oggXServer) com SSH. Siga estas etapas para criar o banco de dados Oracle.

  1. Use SSH para entrar no Oracle VM (oggVM).

    $ chmod 400 ~/.ssh/oggVM.pem
    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    
  2. Altere o usuário para oracle.

    $ sudo su - oracle
    
  3. Crie o banco de dados usando o seguinte comando. Este comando pode levar de 30 a 40 minutos para ser concluído.

    $ dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname cdb1 -sid cdb1 -responseFile NO_VALUE -characterSet AL32UTF8 -sysPassword OraPasswd1 -systemPassword OraPasswd1 -createAsContainerDatabase true -numberOfPDBs 1 -pdbName pdb1 -pdbAdminPassword OraPasswd1 -databaseType MULTIPURPOSE -automaticMemoryManagement false -storageType FS -datafileDestination "/u01/app/oracle/oradata/" -ignorePreReqs
    
  4. Definir as variáveis ORACLE_SID e LD_LIBRARY_PATH

    $ export ORACLE_SID=cdb1
    $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    
  5. Adicione ORACLE_SID e LD_LIBRARY_PATH ao arquivo ~/.bashrc, para que essas configurações sejam salvas para logins futuros. ORACLE_HOME variável já deve estar definida no arquivo .bashrc

    $ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
    $ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
    
  6. Iniciar ouvinte Oracle

    $ lsnrctl start
    

Até agora, o banco de dados Oracle foi criado. Para habilitar o Oracle CDC for GoldenGate, o log de arquivamento precisa ser habilitado. Siga estas etapas para ativá-lo.

  1. Conecte-se ao sqlplus:

    $ sqlplus / as sysdba
    
  2. Habilite o log de arquivamento com o seguinte comando. Execute estes comandos um a um:

    SQL> SELECT log_mode FROM v$database;
    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    
  3. Habilite o registro forçado e a replicação GoldenGate e assegure-se de que pelo menos um arquivo de log esteja presente. Execute estes comandos um a um:

    SQL> ALTER DATABASE FORCE LOGGING;
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    SQL> ALTER SYSTEM set enable_goldengate_replication=true;
    SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN;
    SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;
    SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    SQL> ALTER SESSION SET CONTAINER=PDB1;
    SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    SQL> EXIT;
    

Instalar o Oracle GoldenGate Core

Nesta seção, você aprenderá como baixar o Oracle GoldenGate Core Application e transferir para o Oracle VM (oggVM) e instalá-lo. Todas essas etapas são executadas na VM do Windows do servidor X (oggXServer).

Baixe e transfira o aplicativo Oracle GoldenGate Core para a VM

  1. Abra a máquina virtual do servidor X (oggXServer) RDP e baixe Oracle GoldenGate 21.3.0.0.0 for Oracle on Linux x86-64 de Oracle Golden Gate na máquina virtual de Windows (oggXServer).

  2. Transfira o arquivo zip baixado para Oracle VM (oggVM) com Secure Copy Protocol (SCP) na VM do Windows do servidor X (oggXServer).

    $ scp -i ~/.ssh/oggVM.pem 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip azureuser@10.0.0.4:~/
    
  3. Para instalar o aplicativo principal Oracle GoldenGate com interface GUI, o aplicativo Xming é necessário para instalar no oggXServer. Baixe Xming X Server para Windows para ggXServer e instale com todas as opções padrão.

    • Certifique-se de que não selecionou Iniciar no final da instalação
    • Inicie o aplicativo "XLAUNCH" no menu Iniciar.
  4. Conclua a configuração iniciando o aplicativo XLAUNCH no menu Iniciar. Certifique-se de selecionar Sem controle de acesso.

Instale o Oracle GoldenGate Core Application no oggVM

Todas as operações nesta seção são executadas em Oracle VM (oggVM). Portanto, use o SSH entre nessa VM e siga estas etapas para instalá-la.

  1. Conecte-se ao oggVM com SSH.

    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    
  2. Mova o arquivo zip carregado para oracle home dir.

    $ sudo su -
    $ mv /home/azureuser/213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip /home/oracle/
    
  3. Descompacte os arquivos (instale o utilitário de descompactação se ainda não estiver instalado).

    $ yum install unzip
    $ cd /home/oracle/
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. Alterar permissão.

    $ chown -R oracle:oinstall fbo_ggs_Linux_x64_Oracle_shiphome/
    $ exit
    
  5. Agora, vamos iniciar a instalação do Oracle GoldenGate Core. O IP privado em 'DISPLAY=10.0.0.5:0.0' é o IP privado do oggXServer.

    $ sudo su - oracle
    $ export DISPLAY=10.0.0.5:0.0
    $ cd fbo_ggs_Linux_x64_Oracle_shiphome/Disk1
    $ ./runInstaller
    

    Você deve ver que o servidor Xming é aberto por este instalador.

  6. Selecione Oracle GoldenGate for Oracle Database 21c. Em seguida, selecione Avançar para continuar.

  7. Escolha o caminho de instalação do software como /u01/app/oggcore, certifique-se de que a caixa de seleção Iniciar Gerenciador está selecionada e selecione o botão Avançar para continuar.

  8. Selecione Instalar na etapa de resumo.

  9. Selecione Fechar na última etapa.

Agora, o aplicativo principal do Oracle GoldenGate é instalado com êxito na Oracle VM (oggVM).

Configurar o banco de dados Oracle para OGG e OGG Extract para extrair os dados CDC

Depois que o aplicativo principal do Oracle GoldenGate é instalado, ele pode ser configurado para extrair os dados do Oracle CDC. Siga estas etapas para configurar o Extract. Todas as operações nesta seção ainda são executadas em Oracle VM (oggVM) com conexão SSH.

Preparar o banco de dados para extração

  1. Crie ou atualize o arquivo tnsnames.ora.

    $ sudo su - oracle
    $ cd $ORACLE_HOME/network/admin
    $ vi tnsnames.ora
    

    Quando o editor vi abre, deves pressionar i para alternar para o modo de inserção, depois copiar e colar o conteúdo do ficheiro e pressionar a tecla Esc, :wq para guardar o ficheiro.

    cdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=cdb1)
       )
     )
    
    pdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=pdb1)
       )
     )
    
  2. Crie as contas de proprietário e usuário do Golden Gate.

    $ sqlplus / as sysdba
    
    SQL> CREATE USER C##GGADMIN identified by ggadmin;
    SQL> EXEC dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'ALL');
    SQL> GRANT DBA to C##GGADMIN container=all;
    SQL> connect C##GGADMIN/ggadmin
    SQL> ALTER SESSION SET CONTAINER=PDB1;
    SQL> EXIT;
    
  3. Crie a conta de usuário Golden Gate ggtest.

    $ cd /u01/app/oggcore
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER ggtest identified by ggtest DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO ggtest;
    SQL> ALTER USER ggtest QUOTA 100M on USERS;
    SQL> connect ggtest/ggtest@pdb1
    SQL> @demo_ora_create
    SQL> @demo_ora_insert
    SQL> select * from TCUSTMER;
    SQL> select * from TCUSTORD;
    SQL> EXIT;
    

Você deve ser capaz de ver duas tabelas (TCUSTMER e TCUSTORD) são criadas e dois registros são inseridos em cada uma das duas tabelas.

Configurar e ativar a extração

  1. Configure o ficheiro de parâmetros do Extract do Oracle GoldenGate.

    $ sudo su – oracle
    
  2. Verifique se $TNS_ADMIN está definido em ~/.bashrc. Se não, defina-o como: export TNS_ADMIN=$ORACLE_HOME/network/admin em ~/.bashrc. E execute o comando source ~/.bashrc para fazê-lo entrar em vigor.

    $ cd /u01/app/oggcore
    $ ./ggsci
    GGSCI> DBLOGIN USERID ggtest@pdb1
    
    Successfully logged into database  pdb1
    
    GGSCI> ADD SCHEMATRANDATA pdb1.ggtest
    
    2025-01-04 15:57:42  INFO    OGG-01788  SCHEMATRANDATA has been added on schema "ggtest".
    2025-01-04 15:57:42  INFO    OGG-01976  SCHEMATRANDATA for scheduling columns has been added on schema "ggtest".
    2025-01-04 15:57:42  INFO    OGG-10154  Schema level PREPARECSN set to mode NOWAIT on schema "ggtest".
    
    GGSCI> EDIT PARAMS EXT1
    
    EXTRACT EXT1
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.4, MGRPORT 7809
    RMTTRAIL ./dirdat/rt
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    LOGALLSUPCOLS
    UPDATERECORDFORMAT COMPACT
    TABLE pdb1.ggtest.TCUSTMER;
    TABLE pdb1.ggtest.TCUSTORD;
    
  3. Extrato de registo - extrato integrado.

    GGSCI> dblogin userid C##GGADMIN@cdb1
    
    Successfully logged into database CDB$ROOT.
    
    GGSCI> REGISTER EXTRACT EXT1 DATABASE CONTAINER(pdb1)
    
    2025-01-04 16:04:58  INFO    OGG-02003  Extract group EXT1 successfully registered with database at SCN 2147164.
    
    GGSCI> exit
    
  4. Configure pontos de verificação de extração e inicie a extração em tempo real.

    GGSCI> ADD EXTRACT EXT1, INTEGRATED TRANLOG, BEGIN NOW
    GGSCI> ADD RMTTRAIL ./dirdat/rt, EXTRACT EXT1, MEGABYTES 10
    
    RMTTRAIL added.
    
    GGSCI> START EXTRACT EXT1
    
    Sending START request to MANAGER ...
    EXTRACT EXT1 starting
    
    GGSCI> INFO ALL
    
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     RUNNING
    EXTRACT     RUNNING     EXTORA      00:00:11      00:00:04
    
    GGSCI > EXIT
    
  5. Teste de fumaça para o extrato configurado.

    1. Entre no banco de dados com a conta de teste e insira um registro na tabela:

      $ sqlplus ggtest
      
      SQL> select * from TCUSTORD;
      SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-JAN-25'),'CYCLE',400,16000,1,102);
      SQL> COMMIT;
      SQL> EXIT;
      
    2. Confira a transação captada pela Golden Gate (Nota Total insere valor):

      $ cd /u01/app/oggcore
      $ ./ggsci
      GGSCI> STATS EXT1
      
      Sending STATS request to Extract group EXT1 ...
      Start of statistics at 2025-01-04 16:12:16.
      DDL replication statistics (for all trails):
      
      *** Total statistics since extract started     ***
          Operations                                         0.00
          Mapped operations                                  0.00
          Unmapped operations                                0.00
          Other operations                                   0.00
          Excluded operations                                0.00
      
      Output to ./dirdat/rt:
      Extracting from PDB1.GGTEST.TCUSTORD to PDB1.GGTEST.TCUSTORD:
      *** Total statistics since 2025-01-04 16:11:02 ***
          Total inserts                              1.00
          Total updates                              0.00
          Total deletes                              0.00
          Total upserts                              0.00
          Total discards                             0.00
          Total operations                           1.00
      
      *** Daily statistics since 2025-01-04 16:11:02 ***
          Total inserts                              1.00
          Total updates                              0.00
          Total deletes                              0.00
          Total upserts                              0.00
          Total discards                             0.00
          Total operations                           1.00
      
      *** Hourly statistics since 2025-01-04 16:11:02 ***
          Total inserts                              1.00
          Total updates                              0.00
          Total deletes                              0.00
          Total upserts                              0.00
          Total discards                             0.00
          Total operations                           1.00
      
      *** Latest statistics since 2025-01-04 16:11:02 ***
          Total inserts                              1.00
          Total updates                              0.00
          Total deletes                              0.00
          Total upserts                              0.00
          Total discards                             0.00
          Total operations                           1.00
      End of statistics.
      

Instalar o Oracle GoldenGate Big Data

O Oracle GoldenGate Big Data replica os dados extraídos para o manipulador desejado (destino). Neste tutorial, o manipulador é o tópico Kafka. Nesta seção, você é orientado a baixar os pacotes de software necessários e instalá-los.

Faça o download dos pacotes de software necessários

A VM do Windows (oggXServer) ainda é usada para baixar esses pacotes de software e transferi-los para o Oracle VM (oggVM).

  1. Descarregar o OGG para big data (Oracle GoldenGate for Big Data 21.4.0.0.0 no Linux x86-64) de Oracle GoldenGate Downloads.

  2. Descarregar pacote Kafka(kafka_2.13-3.9.0.tgz).

  3. Baixar JAVA SDK(jdk-8u202-linux-x64.tar.gz.

  4. Use o comando SCP no WSL para transferi-los para a Oracle VM:

    $ scp -i ~/.ssh/oggVM.pem kafka_2.13-3.9.0.tgz jdk-8u202-linux-x64.tar.gz 214000_ggs_Linux_x64_BigData_64bit.zip azureuser@10.0.0.4:~/
    

Instale os três pacotes de software

Para instalar os três pacotes de software, obtenha-os extraídos para as pastas individuais e obtenha as variáveis de ambiente correspondentes configuradas. Todas as operações nesta seção são executadas em Oracle VM (oggVM). Portanto, use o SSH entre nessa VM e siga estas etapas para instalá-los.

  1. Conecte-se ao oggVM com SSH.

    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    
  2. Mova esses pacotes para oracle home dir.

    $ sudo su –
    $ mv /home/azureuser/214000_ggs_Linux_x64_BigData_64bit.zip /home/azureuser/kafka_2.13-3.9.0.tgz /home/azureuser/jdk-8u202-linux-x64.tar.gz /home/oracle/
    $ exit
    
  3. Mude para oracle user e vá para o diretório home para preparar as pastas individuais.

    $ sudo su – oracle
    $ mkdir kafka java oggbd
    $ mv 214000_ggs_Linux_x64_BigData_64bit.zip oggbd/
    $ mv jdk-8u202-linux-x64.tar.gz java/
    $ mv kafka_2.13-3.9.0.tgz kafka
    
  4. Vá para cada pasta individual e obtenha o pacote extraído.

    $ cd java
    $ tar -xvf jdk-8u202-linux-x64.tar.gz
    $ cd ../kafka
    $ tar -xvf kafka_2.13-3.9.0.tgz
    $ cd ../oggbd
    $ mkdir /u01/app/oggbd
    $ tar -xvf ggs_Linux_x64_BigData_64bit.tar -C /u01/app/oggbd
    
  5. Configure as variáveis de ambiente para JAVA.

    $ export JAVA_HOME=/home/oracle/java/jdk1.8.0_202
    $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$JAVA_HOME/lib:/$JAVA_HOME/jre/lib/amd64/server
    

Configure o Oracle GoldenGate Big Data para replicar os dados de CDC para o endpoint Kafka do Eventstream

Nesta seção, você é orientado a configurar o Oracle GoldenGate Big Data para replicar os dados CDC extraídos na seção anterior para o ponto de extremidade Kafka do Eventstream.

Preparar o endpoint Kafka do Eventstream

Seguindo os procedimentos normais de criação do Eventstream para criar uma fonte de ponto de extremidade personalizada e obter as informações do ponto de extremidade Kafka para uso posterior, consulte Adicionar um ponto de extremidade personalizado ou uma fonte de aplicação personalizada a um fluxo de eventos.

Captura de ecrã que mostra que a origem do endpoint personalizado foi criada com êxito.

Configurar a replicação para Oracle GoldenGate Big Data

Todas as operações nesta seção são executadas em Oracle VM (oggVM). Portanto, use o SSH entre nessa VM e siga estas etapas para configurá-la.

  1. Conecte-se ao oggVM com SSH se você perdeu a conexão após a seção anterior.

    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    $ sudo su - oracle
    
  2. Vá para a pasta onde o pacote Oracle GoldenGate Big Data foi extraído e obtenha as pastas necessárias criadas.

    $ cd /u01/app/oggbd
    $ ./ggsci
    GGSCI> CREATE SUBDIRS
    GGSCI> EDIT PARAMS MGR
    
    PORT 7801
    
    GGSCI> START MGR
    GGSCI> INFO ALL
    
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     RUNNING
    
    GGSCI> EXIT
    
  3. Copie os arquivos de configuração do modelo do manipulador Kafka.

    $ cp AdapterExamples/big-data/kafka/* dirprm/
    
  4. Abra o arquivo rkafka.prm e altere o nome do esquema MAP/TARGET de acordo com o nome do esquema no banco de dados de origem.

    $ vim dirprm/rkafka.prm
    
    REPLICAT rkafka
    TARGETDB LIBFILE libggjava.so SET property=dirprm/kafka.props
    REPORTCOUNT EVERY 1 MINUTES, RATE
    GROUPTRANSOPS 10000
    MAP pdb1.ggtest.*, TARGET pdb1.ggtest.*;
    
  5. Adicione a réplica usando o seguinte comando dentro do comando ./ggsci. Certifique-se de que a réplica deve ser a definida na etapa de extração:

    $ ./ggsci
    GGSCI> ADD REPLICAT rkafka, exttrail /u01/app/oggcore/dirdat/rt
    GGSCI> EXIT
    
  6. Abra o ficheiro de propriedades do Kafka e altere o gg.classpath para o caminho correto do diretório de instalação do Kafka sob #Exemplo de gg.classpath para o Apache Kafka. E também preencha o nome do tópico Kafka proveniente da origem de ponto final personalizada do Eventstream.

    $ vim dirprm/kafka.props
    
    gg.handlerlist=kafkahandler
    gg.handler.kafkahandler.type=kafka
    gg.handler.kafkahandler.kafkaProducerConfigFile=custom_kafka_producer.properties
    #The following resolves the topic name using the fixed topic which is from eventstream
    gg.handler.kafkahandler.topicMappingTemplate={YOUR.TOPIC.NAME}
    #The following selects the message key using the concatenated primary keys
    #A null Kafka message key distributes to the partitions on a round-robin basis
    gg.handler.kafkahandler.keyMappingTemplate=${null}
    #gg.handler.kafkahandler.schemaTopicName=mySchemaTopic
    gg.handler.kafkahandler.blockingSend=false
    gg.handler.kafkahandler.includeTokens=false
    gg.handler.kafkahandler.mode=op
    #gg.handler.kafkahandler.metaHeadersTemplate=${alltokens}
    gg.handler.kafkahandler.transactionsEnabled=false
    gg.handler.kafkahandler.format=json
    gg.handler.kafkahandler.format.metaColumnsTemplate=${objectname[table]},${optype[op_type]},${timestamp[op_ts]},${currenttimestamp[current_ts]},${position[pos]}
    #Sample gg.classpath for Apache Kafka
    gg.classpath=dirprm/:/var/lib/kafka/libs/*:/home/oracle/kafka/kafka_2.13-3.9.0/libs/*
    #Sample gg.classpath for HDP
    #gg.classpath=/etc/kafka/conf:/usr/hdp/current/kafka-broker/libs/*
    
    • Você pode encontrar o valor {YOUR.TOPIC.NAME} na página de Autenticação de Chave SAS na guia Kafka:

    Captura de tela que mostra como obter o nome do tópico.

  7. Faça alterações no arquivo custom_producer.properties adicionando a cadeia de caracteres de conexão do Eventstream e a senha necessárias para se conectar ao Eventstream.

    $ vim dirprm/custom_kafka_producer.properties
    
    bootstrap.servers={YOUR.BOOTSTRAP.SERVER}
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.jaas.config={YOUR.SASL.JASS.CONFIG};
    
    acks=1
    reconnect.backoff.ms=1000
    
    value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
    key.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
    # 100KB per partition
    batch.size=16384
    linger.ms=0
    
    • Substitua {YOUR.BOOTSTRAP.SERVER} pelo valor do servidor Bootstrap , que pode copiar do seu stream de eventos.
    • Substitua {YOUR. SASL. JASS.CONFIG} com o SASL JASS config valor, que você pode copiar do seu fluxo de eventos.

    Captura de tela que mostra como obter bootstrap e chave de conexão.

  8. Entre em sua instância do GoldenGate e inicie o processo de replicação.

    $ ./ggsci
    GGSCI> START RKAFKA
    
    Sending START request to Manager ...
    Replicat group RKAFKA starting.
    
    GGSCI> INFO ALL
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    
    MANAGER     RUNNING
    REPLICAT    RUNNING     RKAFKA      00:00:00      00:53:17
    
    GGSCI> EXIT
    

Validar todo o fluxo E2E do Oracle para o Eventstream

Para validar todo o fluxo E2E, vamos iniciar sessão na base de dados Oracle com a conta ggtest para inserir alguns registos e, em seguida, aceder ao Eventstream para verificar se o fluxo de dados de alteração está a ocorrer.

  1. Entre no banco de dados Oracle com conta de teste para inserir alguns novos registros:

    $ sqlplus ggtest
    
    SQL> select * from TCUSTORD;
    SQL> INSERT INTO TCUSTORD VALUES ('MSFT',TO_DATE('3-JAN-25'),'M365',100,80000,2,104);
    SQL> INSERT INTO TCUSTMER VALUES ('TOM','SUNRISE SOFTWARE INC.','SAN FRANCISCO','CA');
    SQL> COMMIT;
    SQL> EXIT;
    
  2. Visualize os dados que você enviou com essa fonte de ponto de extremidade Kafka. Selecione o nó de fluxo padrão, que é o nó central que exibe o nome do fluxo de eventos.

    Captura de tela que mostra como visualizar dados no fluxo de eventos.