Compartir a través de


Transmite datos CDC de Oracle al punto de conexión de Kafka Eventstream con Oracle GoldenGate

En este tutorial, aprenderá a usar Oracle GoldenGate (OGG) para extraer y replicar datos de captura de cambios (CDC) de bases de datos Oracle en Microsoft Fabric Real-Time Intelligence mediante el punto de conexión de Kafka que se ofrece desde el origen de punto de conexión personalizado de Eventstream. Esta configuración permite el procesamiento en tiempo real de los datos CDC de Oracle y permite enviarlos a varios destinos dentro de Fabric, como Eventhouse, Reflex, Stream Derivado o destino de punto de conexión personalizado para su posterior análisis.

En este tutorial, hará lo siguiente:

  • Cree una máquina virtual de Oracle y la base de datos de Oracle.
  • Instale Oracle GoldenGate (OGG) Core en la máquina virtual de Oracle.
  • Configure la base de datos de Oracle para OGG y la Extracción de OGG para extraer datos de CDC.
  • Instale macrodatos de Oracle GoldenGate (OGG) en la máquina virtual de Oracle.
  • Configurar OGG Big Data para replicar los datos de CDC en el endpoint de Kafka de Eventstream.
  • Valide todo el flujo de un extremo a otro de Oracle a Eventstream.

Prerrequisitos

  • Obtenga acceso a un área de trabajo con los permisos de colaborador o superior donde se encuentra la eventstream.
  • Shell preferido: Windows, Linux o Azure Shell.
  • Familiaridad con los editores de Unix, como vi o vim, y un conocimiento básico de X Server.

Creación de una máquina virtual y una base de datos de Oracle

En esta sección se proporcionan instrucciones sobre el uso de comandos de la CLI de Azure para crear una máquina virtual oracle y configurar una base de datos dentro de ella.

Creación de una máquina virtual de Oracle

  1. Abra el shell preferido para iniciar sesión en la suscripción de Azure con el comando az login. A continuación, siga las instrucciones en pantalla:

    $ az login
    
  2. Compruebe el nombre y el identificador de la suscripción que usa para asegurarse de que es el correcto:

    $ az account show
    
  3. Cree un grupo de recursos que se use para agrupar todos los recursos de Azure para este tutorial:

    $ az group create --name esoggcdcrg --location eastus2
    
  4. Cree los recursos de red necesarios para este tutorial:

    1. Cree una red virtual (red virtual) que se use para las máquinas virtuales de este 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. Cree un grupo de seguridad de red (NSG):
      $ az network nsg create --resource-group esoggcdcrg --name oggVnetNSG
      
    3. Cree una regla de NSG para permitir el tráfico de red dentro de la red 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. Cree una regla de grupo de seguridad de red para permitir que la conexión RDP conecte la máquina virtual de Windows. Se usa para acceder a la máquina virtual windows de forma remota desde la 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. Cree una regla NSG para denegar todas las conexiones entrantes:
      $ 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. Asigne NSG a la subred donde hospedamos nuestros servidores:
      $ az network vnet subnet update --resource-group esoggcdcrg --vnet-name oggVNet --name oggSubnet1 --network-security-group oggVnetNSG
      
  5. Cree la máquina virtual de 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
    

Creación y configuración de máquinas virtuales de X Server

Para crear la base de datos de Oracle, es necesario usar SSH para iniciar sesión en la máquina virtual que se creó en el paso anterior. Dado que la regla NSG definida anteriormente deniega todas las conexiones entrantes pero permite conexiones dentro de la red virtual y a través del puerto RDP 3389, se crea una máquina virtual de Windows para conectarse a la máquina virtual Oracle. Esta máquina virtual Windows también se usa para hospedar el servidor X que recibirá la interfaz gráfica de instalación al instalar la aplicación principal de GoldenGate en Oracle VM posteriormente.

  1. Reemplace la contraseña y ejecute el siguiente comando para crear una máquina virtual de estación de trabajo windows donde se implementa 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. Una vez creado, vaya a Azure Portal para descargar el archivo RDP desde el recurso oggXServer para que pueda usarlo para acceder de forma remota a esta máquina Windows. Abra el archivo RDP y use la contraseña que especificó al crear la máquina virtual windows (oggXServer).

    Captura de pantalla que muestra cómo crear la máquina virtual windows.

  3. Instale WSL en la máquina virtual windows (oggXServer) para que se pueda usar SSH para conectarse a la máquina virtual de Oracle (oggVM). También puede usar otras herramientas SSH, como putty para conectarse también.

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

    Captura de pantalla que muestra cómo instalar WSL en la máquina virtual windows.

  4. Debe descargar la clave privada para el inicio de sesión ssh en oggXServer desde oggVM. Una vez descargada la clave, use esta clave (mueva esta clave al directorio .ssh principal de WSL) para iniciar sesión:

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

    Captura de pantalla que muestra cómo actualizar la clave ssh.

  5. Conecte la máquina virtual de Oracle con su dirección IP privada con SSH.

    Captura de pantalla que muestra cómo obtener la dirección IP privada.

Creación de la base de datos de Oracle

Ahora, debería poder iniciar sesión en la máquina virtual de Oracle en la máquina virtual de Windows de X server (oggXServer) con SSH. Siga estos pasos para crear la base de datos de Oracle.

  1. Use SSH para iniciar sesión en la máquina virtual de Oracle (oggVM).

    $ chmod 400 ~/.ssh/oggVM.pem
    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    
  2. Cambie el usuario a oracle.

    $ sudo su - oracle
    
  3. Cree la base de datos con el comando siguiente. Este comando puede tardar entre 30 y 40 minutos en completarse.

    $ 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. Establecer las variables de ORACLE_SID y LD_LIBRARY_PATH

    $ export ORACLE_SID=cdb1
    $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    
  5. Agregue ORACLE_SID y LD_LIBRARY_PATH al archivo ~/.bashrc, de modo que esta configuración se guarde para futuros inicios de sesión. ORACLE_HOME variable ya debe establecerse en el archivo .bashrc

    $ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
    $ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
    
  6. Iniciar el agente de escucha de Oracle

    $ lsnrctl start
    

Por ahora, se ha creado la base de datos de Oracle. Para habilitar el CDC de Oracle para GoldenGate, es necesario habilitar el registro de archivo. Siga estos pasos para habilitarlo.

  1. Conexión a sqlplus:

    $ sqlplus / as sysdba
    
  2. Habilite el registro de archivo con el siguiente comando. Ejecute estos comandos uno por uno:

    SQL> SELECT log_mode FROM v$database;
    SQL> SHUTDOWN IMMEDIATE;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE ARCHIVELOG;
    SQL> ALTER DATABASE OPEN;
    
  3. Habilite el registro forzado y la replicación de GoldenGate y asegúrese de que haya al menos un archivo de registro presente. Ejecute estos comandos uno por uno:

    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;
    

Instalación de Oracle GoldenGate Core

En esta sección, aprenderá a descargar la aplicación Oracle GoldenGate Core y a transferirla a la máquina virtual de Oracle (oggVM) y a instalarla. Todos estos pasos se realizan en la máquina virtual windows de X server (oggXServer).

Descarga y transferencia de la aplicación Oracle GoldenGate Core a la máquina virtual

  1. Abra la máquina virtual de Windows del servidor X (oggXServer) mediante RDP y descargue Oracle GoldenGate 21.3.0.0.0 for Oracle on Linux x86-64 desde Oracle Golden Gate en la máquina virtual Windows (oggXServer).

  2. Transfiera el archivo ZIP descargado a la máquina virtual de Oracle (oggVM) con protocolo de copia segura (SCP) en la máquina virtual windows de X server (oggXServer).

    $ scp -i ~/.ssh/oggVM.pem 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip azureuser@10.0.0.4:~/
    
  3. Para instalar la aplicación principal Oracle GoldenGate con la interfaz GUI, se necesita la aplicación Xming para instalar en oggXServer. Descargue Xming X Server para Windows a ggXServer e instale con todas las opciones predeterminadas.

    • Asegúrese de que no ha seleccionado Iniciar al final de la instalación.
    • Inicie la aplicación "XLAUNCH" desde el menú Inicio.
  4. Complete la configuración iniciando la aplicación XLAUNCH desde el menú Inicio. Asegúrese de seleccionar Sin control de acceso.

Instalación de la aplicación Oracle GoldenGate Core en oggVM

Todas las operaciones de esta sección se realizan en la máquina virtual de Oracle (oggVM). Por lo tanto, use el inicio de sesión SSH en esta máquina virtual y siga estos pasos para instalarlo.

  1. Conéctese a oggVM con SSH.

    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    
  2. Mueva el archivo ZIP cargado a oracle home dir.

    $ sudo su -
    $ mv /home/azureuser/213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip /home/oracle/
    
  3. Descomprima los archivos (instale la utilidad unzip si aún no está instalado).

    $ yum install unzip
    $ cd /home/oracle/
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. Cambiar permiso.

    $ chown -R oracle:oinstall fbo_ggs_Linux_x64_Oracle_shiphome/
    $ exit
    
  5. Ahora, vamos a iniciar la instalación de Oracle GoldenGate Core. La dirección IP privada de 'DISPLAY=10.0.0.5:0.0' es la dirección IP privada de oggXServer.

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

    Debería ver que este instalador abre el servidor Xming.

  6. Seleccione Oracle GoldenGate para Oracle Database 21c. A continuación, seleccione Siguiente para continuar.

  7. Elija la ruta de instalación del software como /u01/app/oggcore, asegúrese de que el cuadro Iniciar Gestor esté seleccionado y seleccione Siguiente para continuar.

  8. Seleccione Instalar en el paso de resumen.

  9. Seleccione Cerrar en el último paso.

Ahora, la aplicación principal oracle GoldenGate se instala correctamente en la máquina virtual de Oracle (oggVM).

Configurar la base de datos de Oracle para OGG y OGG Extract para extraer los datos CDC

Una vez instalada la aplicación principal oracle GoldenGate, se puede configurar para extraer los datos CDC de Oracle. Siga estos pasos para configurar el Extract. Todas las operaciones de esta sección se siguen realizando en la máquina virtual de Oracle (oggVM) con conexión SSH.

Preparación de la base de datos para extraer

  1. Cree o actualice el archivo tnsnames.ora.

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

    Cuando se abre vi editor, tiene que presionar i para cambiar al modo de inserción, luego copiar y pegar el contenido del archivo y presionar Esc tecla, :wq para guardar el archivo.

    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. Cree las cuentas de propietario y usuario de 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. Cree la cuenta de usuario 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;
    

Debería poder ver que se crean dos tablas (TCUSTMER y TCUSTORD) y se insertan dos registros en cada una de las dos tablas.

Configuración y habilitación de la extracción

  1. Configura el archivo de parámetros de extracción para Oracle GoldenGate Extract.

    $ sudo su – oracle
    
  2. Asegúrese de que $TNS_ADMIN esté establecido en ~/.bashrc. Si no es así, establézcalo como: export TNS_ADMIN=$ORACLE_HOME/network/admin en ~/.bashrc. Y ejecute el comando source ~/.bashrc para que surta efecto.

    $ 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. Register extract--integrated extract.

    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 los puntos de control de extracción e inicie la extracción en tiempo 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. Prueba de humo para el extracto configurado.

    1. Inicie sesión con la cuenta de prueba e inserte un registro en la tabla:

      $ 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. Compruebe la transacción recogida por Golden Gate (Nota Total de inserciones 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.
      

Instalación de macrodatos de Oracle GoldenGate

Los macrodatos de Oracle GoldenGate replican los datos extraídos en el controlador deseado (destino). En este tutorial, el controlador es el tema de Kafka. En esta sección, se le guiará para descargar los paquetes de software necesarios y obtenerlos instalados.

Descarga de los paquetes de software necesarios

La máquina virtual Windows (oggXServer) todavía se usa para descargar estos paquetes de software y transferirlos a la máquina virtual de Oracle (oggVM).

  1. Descargue OGG para Big Data (Oracle GoldenGate para Big Data 21.4.0.0.0 en Linux x86-64) desde Descargas de Oracle GoldenGate.

  2. Descargue el paquete kafka(kafka_2.13-3.9.0.tgz).

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

  4. Use el comando SCP en WSL para transferirlos a la máquina virtual de Oracle:

    $ 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:~/
    

Instalación de los tres paquetes de software

Para instalar los tres paquetes de software, extráigalos en las carpetas individuales y obtenga las variables de entorno correspondientes configuradas. Todas las operaciones de esta sección se realizan en la máquina virtual de Oracle (oggVM). Por lo tanto, use el inicio de sesión SSH en esta máquina virtual y siga estos pasos para instalarlos.

  1. Conéctese a oggVM con SSH.

    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    
  2. Mueva estos paquetes a 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. Cambie al usuario de Oracle y vaya al directorio principal para preparar las carpetas individuales.

    $ 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. Vaya a cada carpeta individual y obtenga el paquete 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 las variables de entorno 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
    

Configuración de macrodatos de Oracle GoldenGate para replicar los datos CDC en el punto de conexión de Kafka de Eventstream

En esta sección, se te guiará para configurar Oracle GoldenGate para Big Data con el fin de replicar los datos CDC extraídos en la sección anterior al punto de conexión Kafka de Eventstream.

Prepare el punto de conexión de Kafka para Eventstream

Siguiendo los procedimientos de creación normales de Eventstream y su creación de origen de punto de conexión personalizado para obtener la información del punto de conexión de Kafka para su uso posterior, consulte Adición de un punto de conexión personalizado o un origen de aplicación personalizado a una secuencia de eventos.

Captura de pantalla que muestra que el origen del punto de conexión personalizado se creó correctamente.

Configuración de la replicación para macrodatos de Oracle GoldenGate

Todas las operaciones de esta sección se realizan en la máquina virtual de Oracle (oggVM). Por lo tanto, use el inicio de sesión SSH en esta máquina virtual y siga estos pasos para configurarla.

  1. Conéctese a oggVM con SSH si perdió la conexión después de la sección anterior.

    $ ssh -i ~/.ssh/oggVM.pem azureuser@10.0.0.4
    $ sudo su - oracle
    
  2. Vaya a la carpeta donde se extrajo el paquete de macrodatos de Oracle GoldenGate y obtenga las carpetas necesarias creadas.

    $ 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 los archivos de configuración de la plantilla de controlador de Kafka.

    $ cp AdapterExamples/big-data/kafka/* dirprm/
    
  4. Abra el archivo rkafka.prm y cambie el nombre del esquema MAP/TARGET según el nombre del esquema en la base de datos de origen.

    $ 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. Agregue la replicación mediante el siguiente comando en el comando ./ggsci. Asegúrese de que la replicación debe ser la definida en el paso de extracción:

    $ ./ggsci
    GGSCI> ADD REPLICAT rkafka, exttrail /u01/app/oggcore/dirdat/rt
    GGSCI> EXIT
    
  6. Abra el archivo de propiedades de Kafka y cambie gg.classpath a la ruta de acceso correcta del directorio de instalación de Kafka en la sección '#Sample gg.classpath para Apache Kafka'. Además, rellene el nombre del tema de Kafka que procede del origen del punto de conexión personalizado de 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/*
    
    • Puede encontrar el valor de {YOUR.TOPIC.NAME} en la página Autenticación de claves SAS en la pestaña Kafka:

    Captura de pantalla que muestra cómo obtener el nombre del tema.

  7. Realice cambios en el archivo custom_producer.properties agregando la cadena de conexión de Eventstream y la contraseña necesarias para conectarse a 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
    
    • Reemplace {YOUR.BOOTSTRAP.SERVER} con el valor del servidor Bootstrap, que puede copiar desde su secuencia de eventos.
    • Reemplace {YOUR.SASL.JASS.CONFIG} por el valor de configuración de SASL JASS, que puede copiar de su secuencia de eventos.

    Captura de pantalla que muestra cómo obtener el arranque y la clave de conexión.

  8. Inicie sesión en la instancia de GoldenGate e inicie el proceso de replicación.

    $ ./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
    

Validación del flujo completo de E2E de Oracle a Eventstream

Para validar todo el flujo de E2E, iniciemos sesión en la base de datos de Oracle con la cuenta ggtest para insertar algunos registros y, a continuación, vayamos a Eventstream para comprobar si los datos de los cambios fluyen.

  1. Inicie sesión en Oracle DB con una cuenta de prueba para insertar algunos registros nuevos:

    $ 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. Obtenga una vista previa de los datos que envió con este origen de punto de conexión de Kafka. Seleccione el nodo de flujo predeterminado, que es el nodo central que muestra el nombre del flujo de eventos.

    Captura de pantalla que muestra cómo obtener una vista previa de los datos en eventstream.