Compartir vía


Implementación de Oracle Golden Gate en máquinas virtuales Linux de Azure

Se aplica a: ✔️ Máquinas virtuales Linux

La CLI de Azure se usa para crear y administrar recursos de Azure desde la línea de comandos o en scripts. En esta guía se detalla cómo usar la CLI de Azure para la implementación de la base de datos de Oracle 19c desde la imagen de la galería de Azure Marketplace.

En este documento se muestra paso a paso cómo crear, instalar y configurar Oracle Golden Gate en una máquina virtual de Azure. En este tutorial, se configuran dos máquinas virtuales en un conjunto de disponibilidad en una sola región. Se puede usar el mismo tutorial para configurar OracleGolden Gate para máquinas virtuales en diferentes zonas de disponibilidad en una sola región de Azure o para la configuración de máquinas virtuales en dos regiones diferentes.

Antes de empezar, asegúrese de que se ha instalado la CLI de Azure. Para obtener más información, consulte la guía de instalación de la CLI de Azure.

Introducción

GoldenGate es un software de replicación lógico que permite la replicación en tiempo real, el filtrado y la transformación de datos de una base de datos de origen a una base de datos de destino. Esta característica garantiza que los cambios en la base de datos de origen se repliquen en tiempo real, lo que permite que la base de datos de destino esté actualizada con los datos más recientes.

Use GoldenGate principalmente para casos de replicación heterogénea, como la replicación de datos de diferentes bases de datos de origen a una base de datos única. Por ejemplo, un almacenamiento de datos. También puede usarlo para migraciones multiplataforma, por ejemplo, desde SPARC y AIX a entornos de Linux x86, y escenarios avanzados de alta disponibilidad y escalabilidad.

Además, GoldenGate también es adecuado para migraciones de tiempo de inactividad casi cero, ya que admite migraciones en línea con una interrupción mínima en los sistemas de origen.

Aunque GoldenGate facilita la replicación bidireccional, la aplicación debe configurarse en consecuencia. Además, el software permite filtrar y transformar los datos para cumplir requisitos empresariales específicos, lo que permite a los usuarios usar los datos replicados con diversos fines.

Preparación del entorno

Para llevar a cabo la instalación de Oracle Golden Gate, debe crear dos máquinas virtuales de Azure en el mismo conjunto de disponibilidad. La imagen de Marketplace que se usa para crear las máquinas virtuales es Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.

También debe estar familiarizado con vi, el editor de Unix, y tener un conocimiento básico del servidor X.

La tabla siguiente es un resumen de la configuración del entorno:

Sitio principal Sitio de réplica
Versión de Oracle Oracle Database 19.3.1.0 Oracle Database 19.3.1.0
Nombre de la máquina ggVM1 ggVM2
Sistema operativo Oracle Linux 7.x Oracle Linux 7.x
SID de Oracle CDB1 CDB1
Esquema de replicación PRUEBA PRUEBA
Propietario/réplica de Golden Gate C##GGADMIN REPUSER
Proceso de Golden Gate EXTORA REPORA

Inicio de sesión en Azure

  1. Abra el shell que prefiera en Windows, Linux o Azure Shell.

  2. Inicie sesión en su suscripción de Azure con el comando az login. Después, siga las instrucciones que aparecen en pantalla.

    $ az login
    
  3. Compruebe el nombre o el identificador de la suscripción para asegurarse de que está conectado a la suscripción correcta.

    $ az account show
    
    {
      "environmentName": "XXXXX",
      "homeTenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "id": "<SUBSCRIPTION_ID>",
      "isDefault": true,
      "managedByTenants": [],
      "name": "<SUBSCRIPTION_NAME>",
      "state": "Enabled",
      "tenantId": XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "user": {
        "cloudShellID": true,
        "name": "aaaaa@bbbbb.com",
        "type": "user"
      }
    }
    

Generación de claves de autenticación

Usamos la autenticación basada en archivos de claves con ssh para conectarse a la máquina virtual de Oracle Database. Asegúrese de que tiene los archivos de clave privados (denominados id_rsa) y públicos (denominados id_rsa.pub) en el shell.

La ubicación de los archivos de clave depende del sistema de origen.

Windows: %USERPROFILE%.ssh Linux: ~/.ssh

Si no existen, puede crear un nuevo par de archivos de claves.

ssh-keygen -m PEM -t rsa -b 4096

Se crean el directorio .ssh y los archivos de clave. Para más información, consulte Creación y administración de claves SSH para la autenticación en una máquina virtual Linux en Azure

Crear un grupo de recursos

Para crear un grupo de recursos, use el comando az group create. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.

$ az group create --name GoldenGateOnAzureLab --location westus

Creación y configuración de la red

Creación de una red virtual

Use el siguiente comando para crear la red virtual que hospeda los recursos que creamos en este laboratorio.

$ az network vnet create \
  --name ggVnet \
  --resource-group GoldenGateOnAzureLab \
  --address-prefixes "10.0.0.0/16" \
  --subnet-name ggSubnet1 \
  --subnet-prefixes "10.0.0.0/24"

Cree un grupo de seguridad de red (NSG)

  1. Cree un grupo de seguridad de red (NSG) para bloquear la red virtual.

    $ az network nsg create \
      --resource-group GoldenGateOnAzureLab \
      --name ggVnetNSG
    
  2. Cree una regla de NSG para permitir la comunicación dentro de la red virtual.

    $ az network nsg rule create  --resource-group GoldenGateOnAzureLab --nsg-name ggVnetNSG \
        --name ggAllowVnet \
        --protocol '*' --direction inbound --priority 3400 \
        --source-address-prefix 'VirtualNetwork' --source-port-range '*' \
        --destination-address-prefix 'VirtualNetwork' --destination-port-range '*' --access allow
    
  3. Creación de una regla de NSG para denegar todas las conexiones entrantes

    $ az network nsg rule create \
      --resource-group GoldenGateOnAzureLab \
      --nsg-name ggVnetNSG \
      --name ggDenyAllInBound \
      --protocol '*' --direction inbound --priority 3500 \
      --source-address-prefix '*' --source-port-range '*' \
      --destination-address-prefix '*' --destination-port-range '*' --access deny
    
  4. Asigne NSG a la subred donde hospedamos nuestros servidores.

    $ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
    

Creación de una red Bastion

  1. Cree una subred Bastion. La subred debe llamarse AzureBastionSubnet

    $ az network vnet subnet create  \
        --resource-group GoldenGateOnAzureLab \
        --name AzureBastionSubnet \
        --vnet-name ggVnet \
        --address-prefixes 10.0.1.0/24
    
  2. Creación de una dirección IP pública para Bastion

    $ az network public-ip create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastionIP \
        --sku Standard
    
  3. Cree un recurso de Azure Bastion. El recurso tarda aproximadamente 10 minutos en implementarse.

    $ az network bastion create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastion \
        --public-ip-address ggBastionIP \
        --vnet-name ggVnet \
        --sku Standard \
        --enable-tunneling \
        --enable-ip-connect true
    

Creación de una máquina virtual de X Server (ggXServer)

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 GoldenGateOnAzureLab \
     --name ggXServer \
     --image MicrosoftWindowsDesktop:Windows-10:win10-22h2-pro-g2:19045.2604.230207 \
     --size Standard_DS1_v2  \
     --vnet-name ggVnet \
     --subnet ggSubnet1 \
     --public-ip-sku Standard \
     --nsg "" \
     --data-disk-delete-option Delete \
     --os-disk-delete-option Delete \
     --nic-delete-option Delete \
     --admin-username azureuser \
     --admin-password <ENTER_YOUR_PASSWORD_HERE>

Conexión a ggXServer a través de Bastion

Conéctese a ggXServer mediante Bastion.

  1. Vaya a ggXServer desde Azure Portal.
  2. Vaya a Información general en la hoja izquierda
  3. Seleccione Conectar>Bastion en el menú de la parte superior
  4. Seleccione la pestaña Bastion
  5. Haga clic en Usar Bastion

Preparación de ggXServer para ejecutar X Server

X Server es necesario para los pasos posteriores de este laboratorio. Siga estos pasos para instalar e iniciar X Server.

  1. Descargue Xming X Server para Windows en ggXServer e instale con todas las opciones predeterminadas.

  2. Asegúrese de que no ha seleccionado Iniciar al final de la instalación

  3. Inicie la aplicación "XLAUNCH" desde el menú Inicio.

  4. Seleccione Varias ventanas

    Captura de pantalla del paso 1 del asistente de XLaunch.

  5. Seleccione Iniciar sin cliente

    Captura de pantalla del paso 2 del asistente de XLaunch.

  6. Seleccione Sin control de acceso

    Captura de pantalla del paso 3 del asistente de XLaunch.

  7. Seleccione Permitir acceso para permitir X Server a través del Firewall de Windows

    Captura de pantalla del paso 4 del asistente de XLaunch.

Si reinicia la máquina virtual de ggXServer, siga los pasos 2 a 6 anteriores para reiniciar la aplicación X Server.

Creación de máquinas virtuales de base de datos de Oracle

Para este laboratorio, creamos máquinas ggVM1 virtuales y ggVM2 a partir de la imagen de Oracle Database 19c. Este comando crea claves SSH si aún no existen en la ubicación de claves predeterminada. Para utilizar un conjunto específico de claves, utilice la opción --ssh-key-value. Si ya ha creado las claves SSH en la sección Generar claves de autenticación, se usarán esas claves.

Al crear un nuevo parámetro size de máquina virtual, se indica el tamaño y el tipo de máquina virtual creados. En función de la región de Azure que haya seleccionado para crear la máquina virtual y la configuración de la suscripción, es posible que algunos tamaños y tipos de máquina virtual no estén disponibles para su uso. En el ejemplo siguiente se usa el tamaño mínimo necesario para este laboratorio Standard_DS1_v2. Si desea cambiar las especificaciones de la máquina virtual, seleccione uno de los tamaños disponibles en Tamaños de máquina virtual de Azure. Para fines de prueba, puede elegir entre tipos de máquina virtual De uso general (serie D). En el caso de las implementaciones piloto o de producción, la optimización para memoria (serie E y serie M) es más adecuada.

Creación de ggVM1 (principal)

$ az vm create \
     --resource-group GoldenGateOnAzureLab \
     --name ggVM1 \
     --image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
     --size Standard_DS1_v2 \
     --generate-ssh-keys \
    --admin-username azureuser \
    --vnet-name ggVnet \
    --subnet ggSubnet1 \
    --public-ip-address "" \
    --nsg "" \
    --zone 1

Creación de ggVM2 (replicación)

$ az vm create \
    --resource-group GoldenGateOnAzureLab \
    --name ggVM2 \
    --image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
    --size Standard_DS1_v2  \
    --generate-ssh-keys \
    --admin-username azureuser \
    --vnet-name ggVnet \
    --subnet ggSubnet1 \
    --public-ip-address "" \
    --nsg "" \
    --zone 2

Conexión a ggVM1 (principal)

Conéctese a ggVM1 mediante Bastion.

  1. Vaya a ggVM1 desde Azure Portal.
  2. Vaya a Información general en el panel izquierdo.
  3. Seleccione Conectar>Bastion en el menú de la parte superior
  4. Seleccione la pestaña Bastion
  5. Haga clic en Usar Bastion

Creación de la base de datos en ggVM1 (principal)

El software de Oracle ya está instalado en la imagen de Marketplace, por lo que el siguiente paso es crear la base de datos.

  1. Ejecute el software como el usuario oracle.
$ sudo su - oracle
  1. Cree la base de datos con el siguiente comando. 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

La salida tiene que ser similar a la siguiente respuesta.

Copying database files
1% complete
2% complete
8% complete
13% complete
19% complete
27% complete
Creating and starting Oracle instance
29% complete
32% complete
33% complete
34% complete
38% complete
42% complete
43% complete
45% complete
Completing Database Creation
48% complete
51% complete
53% complete
62% complete
70% complete
72% complete
Creating Pluggable Databases
78% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log" for more details.
  1. Establezca las variables ORACLE_SID y LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Ejecute lo siguiente para agregar ORACLE_SID y LD_LIBRARY_PATH al archivo .bashrc, de modo que esta configuración se guarde para futuros inicios de sesión. La variable ORACLE_HOME 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
  1. Inicio del agente de escucha de Oracle
$ lsnrctl start

Conexión a ggVM2 (replicación)

Conéctese a ggVM2 mediante Bastion.

  1. Vaya a ggVM2 desde Azure Portal.
  2. Vaya a Información general en el panel izquierdo.
  3. Seleccione Conectar>Bastion en el menú de la parte superior
  4. Seleccione la pestaña Bastion
  5. Haga clic en Usar Bastion

Apertura de puertos de firewall para ggVM1

Configure el firewall para permitir conexiones desde ggVM1. El siguiente comando se ejecuta en ggVM2.

$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit

Creación de la base de datos en ggVM2 (réplica)

  1. Cambiar al usuario oracle si es necesario
$ sudo su - oracle
  1. Creación de la base de datos
$ 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
  1. Establezca las variables ORACLE_SID y ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. Ejecute lo siguiente para agregar ORACLE_SID y LD_LIBRARY_PATH al archivo .bashrc, de modo que esta configuración se guarde para futuros inicios de sesión. La variable ORACLE_HOME 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
  1. Inicio del agente de escucha de Oracle
$ lsnrctl start

Configuración de Golden Gate en ggVM1

Siga los pasos de esta sección para instalar y configurar Golden Gate.

Habilitar el modo de archivar registro en ggVM1 (principal)

  1. Conéctese a sqlplus.
$ sqlplus / as sysdba
  1. Habilitar registro de archivo
SQL> SELECT log_mode FROM v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
  1. Habilite el registro forzado y asegúrese de que, al menos, haya un archivo de registro está presente.
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;

Descargar el software de Golden Gate

  1. Descargue el archivo 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip desde la página de descarga de Oracle Golden Gate. En el título de descarga Oracle GoldenGate 21.3.0.0.0 para Oracle en Linux x86-64.

  2. Después de descargar los archivos .zip en el equipo cliente, puede usar el protocolo de copia segura (SCP) para copiar los archivos a la máquina virtual(ggVM1 and ggVM2). Asegúrese de que el comando scp apunta a la ruta de acceso correcta del archivo .zip.

  3. Copiar en ggVM1

    1. Inicie sesión y asegúrese de que usa la suscripción correcta según sea necesario, tal y como se describe en Inicio de sesión en Azure

    2. Abra el túnel a la máquina virtual de destino mediante el siguiente comando de PowerShell

      $ggVM1id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM1 --query 'id' --output tsv)
      az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM1id --resource-port 22 --port 57500
      
    3. Deje el primer símbolo del sistema en ejecución y abra un segundo símbolo del sistema para conectarse a la máquina virtual de destino a través del túnel. En esta segunda ventana del símbolo del sistema, puede cargar archivos desde la máquina local a la máquina virtual de destino mediante el siguiente comando. El archivo de claves id_rsa correcto para acceder a la máquina virtual debe residir en el directorio .ssh o puede apuntar a un archivo de clave diferente mediante el parámetro -i para el comando scp.

       scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      
  4. Copiar en ggVM2

    1. Abra el túnel a la máquina virtual de destino mediante el siguiente comando de PowerShell

      $ggVM2id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM2 --query 'id' --output tsv)
      az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM2id --resource-port 22 --port 57501
      
    2. Deje el primer símbolo del sistema en ejecución y abra un segundo símbolo del sistema para conectarse a la máquina virtual de destino a través del túnel. En esta segunda ventana del símbolo del sistema, puede cargar archivos desde la máquina local a la máquina virtual de destino mediante el siguiente comando. El archivo de claves id_rsa correcto para acceder a la máquina virtual debe residir en el directorio .ssh o puede apuntar a un archivo de clave diferente mediante el parámetro -i para el comando scp.

      scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      

Instalar el software de Golden Gate

  1. Conéctese a ggVM1 mediante Bastion.

    1. Vaya a ggVM1 desde Azure Portal.
    2. Vaya a Información general en el panel izquierdo
    3. Seleccione Conectar>Bastion en el menú de la parte superior
    4. Seleccione la pestaña Bastion
    5. Haga clic en Usar Bastion
  2. Mueva el archivo .zip a la carpeta /opt y, a continuación, cambie el propietario

    $ sudo su -
    $ mv /home/azureuser/*.zip /opt
    
  3. Descomprima los archivos (instale la utilidad de descompresión si aún no está instalada)

    $ yum install unzip
    $ cd /opt
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. Cambiar el permiso

    $ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome
    $ exit
    
  5. Iniciar el instalador de Golden Gate

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

    El instalador se abre en ggXServer.

  6. Seleccione 'Oracle GoldenGate para Oracle Database 21c'. Después, seleccione Siguiente para continuar.

    Captura de pantalla del paso 1 del asistente de instalación de Golden Gate.

  7. Establezca la ubicación de software en /u01/app/oracle/product/19.0.0/oggcore_1, asegúrese de que el cuadro Administrador de inicio esté seleccionado y seleccione Siguiente para continuar.

    Captura de pantalla del paso 2 del asistente de instalación de Golden Gate.

  8. En la pantalla Summary (Resumen), seleccione Install (Instalar) para continuar.

    Captura de pantalla del paso 3 del asistente de instalación de Golden Gate.

  9. Espere hasta que la instalación se complete.

    Captura de pantalla del paso 4 del asistente de instalación de Golden Gate.

  10. Seleccione Cerrar para continuar.

Captura de pantalla del paso 5 del asistente de instalación de Golden Gate.

  1. Conéctese a ggVM2 mediante Bastion.

    1. Vaya a ggVM2 desde Azure Portal.
    2. Vaya a Información general en el panel izquierdo
    3. Seleccione Conectar>Bastion en el menú de la parte superior
    4. Seleccione la pestaña Bastion
    5. Haga clic en Usar Bastion
  2. Repita los pasos del 2 al 10 anterior en ggVM2

Configuración del servicio en ggVM1 (principal)

  1. Cree o actualice el archivo tnsnames.ora.

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

    Cuando se abre el editor vi, tiene que presionar i para cambiar al modo de inserción y, a continuación, copiar y pegar el contenido del archivo y presionar la tecla Esc, :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 usuario y de propietario de Golden Gate.

    Nota

    La cuenta del propietario debe tener el prefijo C##.

    $ 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 las cuentas de usuario de prueba de Golden Gate

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO test;
    SQL> ALTER USER test QUOTA 100M on USERS;
    SQL> connect test/test@pdb1
    SQL> @demo_ora_create
    SQL> @demo_ora_insert
    SQL> EXIT;
    
  4. Configure el archivo de parámetros de extracción.

    Inicie la interfaz de la línea de comandos de Golden Gate (ggsci):

    $ sudo su - oracle
    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ ./ggsci
    
    GGSCI> DBLOGIN USERID test@pdb1, PASSWORD test
    Successfully logged into database  pdb1
    GGSCI>  ADD SCHEMATRANDATA pdb1.test
    2017-05-23 15:44:25  INFO    OGG-01788  SCHEMATRANDATA has been added on schema test.
    2017-05-23 15:44:25  INFO    OGG-01976  SCHEMATRANDATA for scheduling columns has been added on schema test.
    
    GGSCI> EDIT PARAMS EXTORA
    
  5. Presione la tecla i para cambiar al modo de inserción y copiar y pegar (haga clic con el botón derecho en la ventana SSH) después del archivo de parámetros EXTRACT. Presione la tecla Esc :wq! para guardar el archivo.

    EXTRACT EXTORA
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.5, MGRPORT 7809
    RMTTRAIL ./dirdat/rt
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    LOGALLSUPCOLS
    UPDATERECORDFORMAT COMPACT
    TABLE pdb1.test.TCUSTMER;
    TABLE pdb1.test.TCUSTORD;
    
  6. Register extract--integrated extract.

    GGSCI> dblogin userid C##GGADMIN@cdb1, password ggadmin
    Successfully logged into database CDB$ROOT.
    
    GGSCI> REGISTER EXTRACT EXTORA DATABASE CONTAINER(pdb1)
    
    2023-03-03 19:37:01  INFO    OGG-02003  Extract group EXTORA successfully registered with database at SCN 2142014.
    
    GGSCI> exit
    
  7. Configure los punto de comprobación de extracción e inicie la extracción en tiempo real

    $ ./ggsci
    
    GGSCI>  ADD EXTRACT EXTORA, INTEGRATED TRANLOG, BEGIN NOW
    EXTRACT (Integrated) added.
    
    GGSCI>  ADD RMTTRAIL ./dirdat/rt, EXTRACT EXTORA, MEGABYTES 10
    RMTTRAIL added.
    
    GGSCI>  START EXTRACT EXTORA
    
    Sending START request to MANAGER ...
    EXTRACT EXTORA 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
    

    En este paso, busque el SCN inicial, que se usa más adelante, en otra sección.

    $ sqlplus / as sysdba
    
    SQL> alter session set container = pdb1;
    SQL> SELECT current_scn from v$database;
    CURRENT_SCN
    -----------
       2172191
    SQL> EXIT;
    
    $ ./ggsci
    GGSCI> EDIT PARAMS INITEXT
    

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

    EXTRACT INITEXT
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.6, MGRPORT 7809
    RMTTASK REPLICAT, GROUP INITREP
    TABLE pdb1.test.*, SQLPREDICATE 'AS OF SCN 2172191';
    
    GGSCI> ADD EXTRACT INITEXT, SOURCEISTABLE
    Extract added.
    GGSCI> EXIT
    

Configuración del servicio en ggVM2 (réplica)

  1. Cree o actualice el archivo tnsnames.ora.

    $ cd $ORACLE_HOME/network/admin
    $ vi tnsnames.ora
    

    Cuando se abre el editor vi, tiene que presionar i para cambiar al modo de inserción y, a continuación, copiar y pegar el contenido del archivo y presionar la tecla Esc, :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 una cuenta de replicación.

    $ sqlplus / as sysdba
    
    SQL> ALTER SYSTEM set enable_goldengate_replication=true;
    SQL> ALTER SESSION SET CONTAINER = pdb1;
    SQL> CREATE USER REPUSER IDENTIFIED BY REP_PASS CONTAINER=CURRENT;
    SQL> GRANT DBA TO REPUSER;
    SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('REPUSER',CONTAINER=>'PDB1');
    SQL> CONNECT REPUSER/REP_PASS@PDB1
    SQL> EXIT;
    
  3. Cree una cuenta de usuario de prueba de Golden Gate.

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO test;
    SQL> ALTER USER test QUOTA 100M on USERS;
    SQL> CONNECT test/test@pdb1
    SQL> @demo_ora_create
    SQL> EXIT;
    
  4. Archivo de parámetros REPLICAT para replicar los cambios.

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ ./ggsci
    
    GGSCI> EDIT PARAMS REPORA
    

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

    REPLICAT REPORA
    ASSUMETARGETDEFS
    DISCARDFILE ./dirrpt/repora.dsc, PURGE, MEGABYTES 100
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
    USERID repuser@pdb1, PASSWORD REP_PASS
    MAP pdb1.test.*, TARGET pdb1.test.*;
    
  5. Configure un punto de control de réplica.

    GGSCI> ADD REPLICAT REPORA, INTEGRATED, EXTTRAIL ./dirdat/rt
    GGSCI> EDIT PARAMS INITREP
    

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

    REPLICAT INITREP
    ASSUMETARGETDEFS
    DISCARDFILE ./dirrpt/tcustmer.dsc, APPEND
    USERID repuser@pdb1, PASSWORD REP_PASS
    MAP pdb1.test.*, TARGET pdb1.test.*;
    
    GGSCI> ADD REPLICAT INITREP, SPECIALRUN
    GGSCI> EXIT
    

Configuración de la replicación (ggVM1 y ggVM2)

1. Configure la replicación en ggVM2 (réplica)

Inicie sesión en ggsci.

$ cd /u01/app/oracle/product/12.1.0/oggcore_1
$ ./ggsci
GGSCI> EDIT PARAMS MGR

Actualice el archivo con lo siguiente.

PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW

Reinicie el servicio de administrador.

GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT

2. Configure la replicación en ggVM1 (principal)

Inicie la carga inicial y busque errores.

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> START EXTRACT INITEXT
GGSCI> VIEW REPORT INITEXT

3. Configure la replicación en ggVM2 (réplica)

Cambie el número de SCN con el número que obtuvo antes.

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
START REPLICAT REPORA, AFTERCSN 2172191

Ha empezado la replicación y puede probarla mediante la inserción de nuevos registros a las tablas de prueba.

Visualización del estado del trabajo y solución de problemas

Ver informes

  • Para ver los informes en ggVM1, ejecute los comandos siguientes.

    GGSCI> VIEW REPORT EXTORA
    
  • Para ver los informes en ggVM2, ejecute los comandos siguientes.

    GGSCI> VIEW REPORT REPORA
    

Visualización del estado e historial

  • Para ver el estado e historial en ggVM1, ejecute los comandos siguientes.

    GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin
    GGSCI> INFO EXTRACT EXTORA, DETAIL
    
  • Para ver el estado e historial en ggVM2, ejecute los comandos siguientes.

    GGSCI> DBLOGIN USERID REPUSER@PDB1 PASSWORD REP_PASS
    GGSCI> INFO REP REPORA, DETAIL
    
    $ sqlplus test/test@pdb1
    
    SQL> select * from TCUSTMER;
    SQL> select * from TCUSTORD;
    

Observar la replicación de datos

  1. Conexión a la base de datos principal en ggVM1

    $ sqlplus test/test@pdb1
    
  2. Seleccionar registros existentes de la tabla

    SQL> select * from TCUSTORD;
    
  3. Creación de un registro de prueba

    SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102);
    SQL> COMMIT;
    SQL> EXIT;
    
  4. Observe la transacción recogida por Golden Gate (Nota Total de inserciones valor)

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> STATS EXTORA
  Sending STATS request to Extract group EXTORA ...

  Start of statistics at 2023-03-24 19:41:54.

  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.TEST.TCUSTORD to PDB1.TEST.TCUSTORD:

  *** Total statistics since 2023-03-24 19:41:34 ***
     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 2023-03-24 19:41:34 ***
     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 2023-03-24 19:41:34 ***
     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 2023-03-24 19:41:34 ***
     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.
  1. Conexión a la base de datos principal en ggVM2

    $ sqlplus test/test@pdb1
    
  2. Comprobación de que se ha replicado un nuevo registro

    SQL> select * from TCUSTORD;
    
     CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID
     ---- --------- -------- ---------- ------------- -------------- --------------
     OLLJ 11-APR-99 CYCLE       400   16000      1    102
     WILL 30-SEP-94 CAR       144   17520      3    100
     JANE 11-NOV-95 PLANE       256  133300      1    100
    

La instalación y configuración de Golden Gate en Oracle linux ya está completa.

Eliminación de la máquina virtual ggXServer

La máquina virtual ggXServer solo se usa durante la instalación. Puede eliminarlo de forma segura después de completar este documento de laboratorio, pero mantener intacta la configuración del laboratorio de GoldenGate en Azure.

$ az vm delete --resource-group GoldenGateOnAzureLab --name ggXServer --force-deletion yes

$ az network public-ip delete --resource-group GoldenGateOnAzureLab --name ggXServerPublicIP

Eliminación de Golden Gate en la configuración de Azure Lab

Cuando ya no los necesite, se puede usar el comando siguiente para quitar el grupo de recursos, la máquina virtual y todos los recursos relacionados con este laboratorio.

$ az group delete --name GoldenGateOnAzureLab

Pasos siguientes

Tutorial de creación de máquinas virtuales de alta disponibilidad

Ejemplos de la CLI de implementación de máquinas virtuales