Uso de Oracle GoldenGate con Amazon RDS para Oracle‎‎‏‏‎ - Amazon Relational Database Service

Uso de Oracle GoldenGate con Amazon RDS para Oracle‎‎‏‏‎

Oracle GoldenGate recopila, replica y administra datos transaccionales entre bases de datos. Se trata de un paquete de software de replicación y de captura de datos de cambios (CDC, por sus siglas en inglés) basada en registros que se utiliza con bases de datos para sistemas de procesamiento de transacciones online (OLTP, por sus siglas en inglés). Oracle GoldenGate crea archivos de seguimiento que contienen los datos cambiados más recientes de la base de datos de origen. A continuación, envía estos archivos al servidor, donde un proceso convierte el archivo de seguimiento en SQL estándar para aplicarlo a la base de datos de destino.

Oracle GoldenGate con RDS para Oracle admite las siguientes características:

  • Reproducción de bases de datos activa a activa

  • Recuperación de desastres

  • Protección de los datos

  • Replicación dentro y fuera de la región

  • Migración y actualizaciones sin tiempo de inactividad

  • Replicación de datos entre una instancia de base de datos de RDS para Oracle y una base de datos que no es de Oracle

    nota

    Para obtener una lista de baSes de datos compatibles, consulte Oracle Fusion Middleware Supported System Configurations (Configuraciones de sistemas compatibles con Oracle Fusion Middleware) en la documentación de Oracle.

Puede usar Oracle GoldenGate con RDS para Oracle para actualizar a las principales versiones de base de datos de Oracle. Por ejemplo, puede usar Oracle GoldenGate para actualizar una base de datos Oracle Database 11g en las instalaciones a Oracle Database 19c en una instancia de base de datos de Amazon RDS.

Versiones y opciones de licencia compatibles con Oracle GoldenGate

Puede utilizar Standard Edition 2 (SE2) o Enterprise Edition (EE) de RDS para Oracle con Oracle GoldenGate versión 12c y posteriores. Puede utilizar las siguientes características de Oracle GoldenGate:

  • Se admite la captura remota (extracción) de Oracle GoldenGate.

  • Las instancias de base de datos de RDS para Oracle que utilizan la arquitectura de base de datos tradicional que no es de CDB admiten la captura (extracción). La captura de PDB remota de Oracle GoldenGate es compatible con las bases de datos de contenedores (CDB) de Oracle Database 21c.

  • La entrega remota (replicación) de Oracle GoldenGate es compatible con instancias de bases de datos de RDS para Oracle que utilizan arquitecturas de CDB o que no son de CDB. La entrega remota admite las funciones Replicación integrada, Replicación paralela, Replicación coordenada y Replicación clásica.

  • RDS para Oracle es compatible con las arquitecturas clásica y de microservicios de Oracle GoldenGate.

  • Se admite la replicación de valores de Oracle GoldenGate DDL y Sequence cuando se utiliza el modo de captura integrado.

El usuario es responsable de administrar las licencias de GoldenGate (BYOL) para usarlas con Amazon RDS en todas las Regiones de AWS. Para obtener más información, consulte Opciones de licencias de RDS para Oracle.

Requisitos y limitaciones de Oracle GoldenGate

Cuando trabaje con Oracle GoldenGate y RDS para Oracle, tenga en cuenta los siguientes requisitos y limitaciones:

  • Es responsable de configurar y administrar Oracle GoldenGate para usarlo con RDS para Oracle.

  • Es responsable de configurar una versión de Oracle GoldenGate que esté certificada con las bases de datos de origen y destino. Para obtener más información, consulte Oracle Fusion Middleware Supported System Configurations (Configuraciones de sistemas compatibles con Oracle Fusion Middleware) en la documentación de Oracle.

  • Puede utilizar Oracle GoldenGate en muchos entornos diferentes de AWS para muchos casos de uso diferentes. Si tiene algún problema relacionado con el soporte de Oracle GoldenGate, póngase en contacto con los servicios de soporte de Oracle.

  • Puede utilizar Oracle GoldenGate en RDS para Oracle para instancias de base de datos de Oracle que utilicen el cifrado de datos transparente (TDE, por sus siglas en inglés) de Oracle. Para mantener la integridad de los datos replicados, configure el cifrado en el centro de Oracle GoldenGate con volúmenes cifrados de Amazon EBS o el cifrado de archivos de trazado. Configure también el cifrado de los datos enviados entre el centro de Oracle GoldenGate y las instancias de base de datos de origen y destino. Las instancias de base de datos de RDS for Oracle admiten el cifrado con Capa de conexión segura de Oracle o Oracle Native Network Encryption.

Arquitectura de Oracle GoldenGate

La arquitectura de Oracle GoldenGate para su uso con Amazon RDS consta de los siguientes módulos desacoplados:

Base de datos de origen

La base de datos de origen puede ser una base de datos de Oracle en las instalaciones, una base de datos de Oracle en una instancia de Amazon EC2 o una base de datos de Oracle en una instancia de base de datos de Amazon RDS.

Hub de Oracle GoldenGate

Un hub de Oracle GoldenGate mueve la información de las transacciones desde la base de datos de origen a la base de datos de destino. El hub puede ser cualquiera de los siguientes:

  • Una instancia de Amazon EC2 con la base de datos de Oracle y con Oracle GoldenGate instalado

  • Una instalación de Oracle en las instalaciones

Puede tener más de un hub de Amazon EC2. Le recomendamos que use dos hubs si utiliza Oracle GoldenGate para la replicación entre regiones.

Bases de datos de destino

La base de datos de destino puede residir en una instancia de base de datos de Amazon RDS, en una instancia Amazon EC2 o en una ubicación en las instalaciones.

Las siguientes secciones describen escenarios comunes de Oracle GoldenGate en Amazon RDS.

Base de datos de origen en las instalaciones y hub de Oracle GoldenGate

En este escenario, una base de datos de origen Oracle en las instalaciones y un hub de Oracle GoldenGate en las instalaciones proporcionan datos a una instancia de base de datos de Amazon RDS de destino.


					Configuración de Oracle GoldenGate 0 con Amazon RDS

Base de datos de origen en las instalaciones y hub de Amazon EC2

En este escenario, una base de datos Oracle local actúa como base de datos de origen. Está conectada a un hub de instancias de Amazon EC2. Este hub proporciona datos a una instancia de base de datos RDS for Oracle de destino.


					Configuración de Oracle GoldenGate 1 con Amazon RDS

Base de datos de origen de Amazon RDS y hub de Amazon EC2

En este escenario, una instancia de base de datos RDS for Oracle actúa como base de datos de origen. Está conectada a un hub de instancia de Amazon EC2. Este hub proporciona datos a una instancia de base de datos RDS for Oracle de destino.


					Configuración de Oracle GoldenGate 2 con Amazon RDS

Base de datos de origen de Amazon EC2 y hub de Amazon EC2

En este escenario, una base de datos Oracle en una instancia de Amazon EC2 actúa como base de datos de origen. Está conectada a un hub de instancia de Amazon EC2. Este hub proporciona datos a una instancia de base de datos RDS for Oracle de destino.


					Configuración de Oracle GoldenGate 3 con Amazon RDS

Hubs de Amazon EC2 en diferentes regiones de AWS

En este escenario, una base de datos Oracle en una instancia de base de datos de Amazon RDS está conectada a un hub de instancias de Amazon EC2 en la misma región de AWS. El hub está conectado a un hub de instancias de Amazon EC2 en una región de AWS diferente. Este segundo hub proporciona datos a la instancia de base de datos de RDS for Oracle de destino en la misma región de AWS que el segundo hub de instancias de Amazon EC2.


					Configuración de Oracle GoldenGate 4 con Amazon RDS
nota

Cualquier problema que afecte a la ejecución de Oracle GoldenGate en un entorno en las instalaciones también afecta a la ejecución de Oracle GoldenGate en AWS. Le recomendamos que supervise el hub de Oracle GoldenGate para asegurarse de que EXTRACT y REPLICAT se reanudan si se produce una conmutación por error. Dado que el hub de Oracle GoldenGate se ejecuta en una instancia de Amazon EC2, Amazon RDS no administra el hub de Oracle GoldenGate y no puede garantizar que se esté ejecutando.

Configuración de Oracle GoldenGate

Para configurar Oracle GoldenGate mediante Amazon RDS, tiene que configurar el hub en la instancia de Amazon EC2 y, a continuación, configurar las bases de datos de origen y de destino. Las siguientes secciones muestran un ejemplo de cómo configurar Oracle GoldenGate para usarlo con Amazon RDS para Oracle.

Configuración de un hub de Oracle GoldenGate en Amazon EC2

Para crear un hub de Oracle GoldenGate en una instancia de Amazon EC2, cree en primer lugar una instancia de Amazon EC2 con una instalación completa de cliente de Oracle DBMS. La instancia de Amazon EC2 también debe tener instalado el software GoldenGate de Oracle. Las versiones del software de Oracle GoldenGate dependen de las versiones de la base de datos de origen y destino. Para obtener más información acerca de la instalación de Oracle GoldenGate, consulte la documentación de Oracle GolgenGate.

La instancia de Amazon EC2 que actúa de hub de Oracle GoldenGate almacena y procesa la información de las transacciones de la base de datos de origen a los archivos de trazado. Para admitir este proceso, asegúrese de que cumpla los siguientes requisitos:

  • Haber asignado suficiente espacio de almacenamiento para los archivos de seguimiento.

  • La instancia de Amazon EC2 tiene suficiente potencia de procesamiento para administrar la cantidad de datos.

  • La instancia EC2 tiene suficiente memoria para almacenar la información de transacción antes de que se escriba en el archivo de seguimiento.

Para configurar un hub de arquitectura clásica de Oracle GoldenGate en una instancia Amazon EC2
  1. Cree los subdirectorios en el directorio de Oracle GoldenGate.

    En el shell de la línea de comandos de Amazon EC2, lance ggsci, el intérprete del comando de Oracle GoldenGate. El comando CREATE SUBDIRS crea subdirectorios bajo el directorio /gg para los archivos de parámetros, informes y puntos de comprobación.

    prompt$ cd /gg prompt$ ./ggsci GGSCI> CREATE SUBDIRS
  2. Configure el archivo mgr.prm.

    El siguiente ejemplo añade líneas al archivo $GGHOME/dirprm/mgr.prm.

    PORT 8199 PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
  3. Inicie el administrador.

    En el siguiente ejemplo se lanza ggsci y se ejecuta el comando start mgr.

    GGSCI> start mgr

El hub de Oracle GoldenGate ya se puede utilizar.

Configuración de una base de datos de origen para usarla con Oracle GoldenGate en Amazon RDS

Cuando la base de datos de origen ejecute Oracle Database 12c o posterior, complete las siguientes tareas para configurar una base de datos de origen a fin de utilizarla con Oracle GoldenGate.

Paso 1: activar el registro suplementario en la base de datos de origen

Para activar el registro suplementario mínimo en el nivel de la base de datos, ejecute el siguiente procedimiento PL/SQL:

EXEC rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD')

Paso 2: establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION en verdadero

Al establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION en true, permite que los servicios de bases de datos admitan la replicación lógica. Si la base de datos de origen está en una instancia de base de datos de Amazon RDS, asegúrese de asignar un grupo de parámetros a dicha instancia de base de datos con el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION establecido en true. Para obtener más información acerca del parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION, consulte la documentación de la base de datos de Oracle.

Paso 3: establecer el período de retención del registro en la base de datos de origen

Asegúrese de configurar la base de datos de origen para retener los registros redo archivados. Tenga en cuenta estas directrices:

  • Especifique la duración de la retención de registros en horas. El valor mínimo es una hora.

  • Establezca la duración de manera que supere cualquier posible periodo de inactividad de la instancia de base de datos de origen, cualquier posible periodo de comunicación y cualquier posible periodo de problemas de red para dicha instancia de origen. Dicha duración permite a Oracle GoldenGate recuperar registros de la instancia de origen según sea necesario.

  • Asegúrese de que dispone de suficiente almacenamiento en la instancia para los archivos.

Por ejemplo, establezca el período de retención para los registros REDO archivados en 24 horas.

EXEC rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24)

Si no tiene la retención de registros habilitada, o bien si el valor de retención es demasiado pequeño, recibirá un mensaje de error similar al siguiente.

2022-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 Not able to establish initial position for begin time 2022-03-06 06:16:55.

Dado que la instancia de base de datos conserva los registros redo archivados, asegúrese de tener suficiente espacio para los archivos. Para ver cuánto espacio ha utilizado en las últimas num_hours horas, utilice la siguiente consulta, sustituyendo num_hours por el número de horas.

SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG WHERE NEXT_TIME>=SYSDATE-num_hours/24 AND DEST_ID=1;

Paso 4: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de origen

Oracle GoldenGate se ejecuta como usuario de base de datos y requiere los privilegios de base de datos apropiados para obtener acceso a los registros redo y redo archivados para la base de datos de origen. Para proporcionarlos, cree una cuenta de usuario en la base de datos de origen. Para obtener más información sobre los permisos para una cuenta de usuario de Oracle GoldenGate, consulte la documentación de Oracle.

Las siguientes instrucciones crean una cuenta de usuario llamada oggadm1.

CREATE TABLESPACE administrator; CREATE USER oggadm1  IDENTIFIED BY "password" DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
nota

Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

Paso 5: conceder privilegios al usuario en la base de datos de origen

En esta tarea, concederá los privilegios de cuenta necesarios a los usuarios de la base de datos de la base de datos de origen.

Para conceder privilegios a la cuenta en la base de datos de origen
  1. Conceda los privilegios necesarios a la cuenta de usuario de Oracle GoldenGate mediante el comando SQL grant y el procedimiento grant_sys_object de rdsadmin.rdsadmin_util. Las siguientes instrucciones conceden privilegios a un usuario llamado oggadm1.

    GRANT CREATE SESSION, ALTER SESSION TO oggadm1; GRANT RESOURCE TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT FLASHBACK ANY TABLE TO oggadm1; GRANT SELECT ANY TABLE TO oggadm1; GRANT SELECT_CATALOG_ROLE TO rds_master_user_name WITH ADMIN OPTION; EXEC rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1'); GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1; GRANT SELECT ON SYS.V_$DATABASE TO oggadm1; GRANT ALTER ANY TABLE TO oggadm1;
  2. Otorgue los privilegios necesarios para que una cuenta de usuario sea administrador de Oracle GoldenGate. El paquete que se utiliza para realizar la concesión, dbms_goldengate_auth o rdsadmin_dbms_goldengate_auth, depende de la versión del motor de base de datos Oracle.

    • Para versiones de Oracle DB posteriores o iguales a Oracle Database 12c Versión 2 (12.2), que requiere el nivel de parche 12.2.0.1.ru-2019-04.rur-2019-04.r1 o posterior, ejecute el siguiente programa PL/SQL.

      EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'capture', grant_select_privileges => true, do_grants => TRUE);
    • Para las versiones de base de datos de Oracle anteriores a Oracle Database 12c Versión 2 (12.2), ejecute el siguiente programa PL/SQL.

      EXEC dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'capture', grant_select_privileges => true, do_grants => TRUE);

    Para revocar privilegios, utilice el procedimiento revoke_admin_privilege en el mismo paquete.

Paso 6: agregar un alias de TNS para la base de datos de origen

Agregue la siguiente entrada a $ORACLE_HOME/network/admin/tnsnames.ora en el directorio raíz de Oracle que utilizará el proceso EXTRACT. Para obtener más información sobre el archivo tnsnames.ora, consulte la documentación de Oracle.

OGGSOURCE= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SERVICE_NAME=ORCL)) )

Configuración de una base de datos de destino para Oracle GoldenGate en Amazon RDS

En esta tarea, debe configurar una instancia de base de datos de destino para usarla con Oracle GoldenGate.

Paso 2: establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION en verdadero

Al establecer el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION en true, permite que los servicios de bases de datos admitan la replicación lógica. Si la base de datos de origen está en una instancia de base de datos de Amazon RDS, asegúrese de asignar un grupo de parámetros a dicha instancia de base de datos con el parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION establecido en true. Para obtener más información acerca del parámetro de inicialización ENABLE_GOLDENGATE_REPLICATION, consulte la documentación de la base de datos de Oracle.

Paso 2: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de destino

Oracle GoldenGate se ejecuta como usuario de base de datos y requiere los privilegios de base de datos apropiados. Para asegurarse de que los tiene, cree una cuenta de usuario en la base de datos de destino.

La siguiente instrucción crea una cuenta de usuario llamada oggadm1.

CREATE TABLESPSACE administrator; CREATE USER oggadm1  IDENTIFIED BY "password" DEFAULT TABLESPACE administrator TEMPORARY TABLESPACE temp; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
nota

Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

Paso 3: otorgar privilegios de cuenta en la base de datos de destino

En esta tarea, concederá los privilegios de cuenta necesarios a los usuarios de la base de datos en la base de datos de destino.

Para otorgar privilegios de cuenta en la base de datos de destino
  1. Otorgue los privilegios necesarios a la cuenta de usuario de Oracle GoldenGate en la base de datos de destino. En el siguiente ejemplo, otorgará privilegios a oggadm1.

    GRANT CREATE SESSION        TO oggadm1; GRANT ALTER SESSION         TO oggadm1; GRANT CREATE CLUSTER        TO oggadm1; GRANT CREATE INDEXTYPE      TO oggadm1; GRANT CREATE OPERATOR       TO oggadm1; GRANT CREATE PROCEDURE      TO oggadm1; GRANT CREATE SEQUENCE       TO oggadm1; GRANT CREATE TABLE          TO oggadm1; GRANT CREATE TRIGGER        TO oggadm1; GRANT CREATE TYPE           TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT CREATE ANY TABLE      TO oggadm1; GRANT ALTER ANY TABLE       TO oggadm1; GRANT LOCK ANY TABLE        TO oggadm1; GRANT SELECT ANY TABLE      TO oggadm1; GRANT INSERT ANY TABLE      TO oggadm1; GRANT UPDATE ANY TABLE      TO oggadm1; GRANT DELETE ANY TABLE      TO oggadm1;
  2. Otorgue los privilegios necesarios para que una cuenta de usuario sea administrador de Oracle GoldenGate. El paquete que se utiliza para realizar la concesión, dbms_goldengate_auth o rdsadmin_dbms_goldengate_auth, depende de la versión del motor de base de datos Oracle.

    • Para versiones de base de datos de Oracle posteriores o iguales a Oracle Database 12c Versión 2 (12.2), que requiere el nivel de parche 12.2.0.1.ru-2019-04.rur-2019-04.r1 o posterior, ejecute el siguiente programa PL/SQL.

      EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'apply', grant_select_privileges => true, do_grants => TRUE);
    • Para las versiones de base de datos de Oracle anteriores a Oracle Database 12c Versión 2 (12.2), ejecute el siguiente programa PL/SQL.

      EXEC dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'apply', grant_select_privileges => true, do_grants => TRUE);

    Para revocar privilegios, utilice el procedimiento revoke_admin_privilege en el mismo paquete.

Paso 4: agregar un alias de TNS para la base de datos de destino

Agregue la siguiente entrada a $ORACLE_HOME/network/admin/tnsnames.ora en el directorio raíz de Oracle que utilizará el proceso REPLICAT. Para las bases de datos Oracle Multitenant, asegúrese de que el alias TNS apunte hacia el nombre del servicio de la PDB. Para obtener más información sobre el archivo tnsnames.ora, consulte la documentación de Oracle.

OGGTARGET= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SERVICE_NAME=ORCL)) )

Uso de las utilidades EXTRACT y REPLICAT de Oracle GoldenGate

Las utilidades de Oracle GoldenGate EXTRACT y REPLICAT trabajan juntas para mantener las bases de datos de origen y de destino sincronizadas mediante la replicación incremental de transacciones utilizando archivos de seguimiento. Todos los cambios que se producen en la base de datos de origen son detectados automáticamente por EXTRACT y, a continuación, se formatean y transfieren a los archivos de seguimiento en el hub de instancias de EC2 o en Oracle GoldenGate en las instalaciones. Una vez finalizada la carga inicial, se leen los datos de estos archivos y se replican en la base de datos de destino mediante la utilidad REPLICAT.

Ejecución de la utilidad EXTRACT de Oracle GoldenGate

La utilidad EXTRACT recupera, convierte y devuelve datos de la base de datos de origen a los archivos de seguimiento. El procedimiento básico es el siguiente:

  1. EXTRACT pone en cola detalles de la transacción en la memoria o en el almacenamiento del disco temporal.

  2. La base de datos de origen confirma la transacción.

  3. EXTRACT escribe los detalles de la transacción en un archivo de seguimiento.

  4. El archivo de seguimiento dirige estos detalles hacia el hub de instancias de EC2 o en las instalaciones de Oracle GoldenGate y, a continuación, hacia la base de datos de destino.

Los siguientes pasos inician la utilidad EXTRACT, capturan los datos de EXAMPLE.TABLE en la base de datos OGGSOURCE de origen y crean los archivos de seguimiento.

Para ejecutar la utilidad EXTRACT
  1. Configure el archivo de parámetros EXTRACT en el hub de Oracle GoldenGate (instancia en las instalaciones o de Amazon EC2). El siguiente listado muestra un archivo de parámetros EXTRACT de ejemplo denominado $GGHOME/dirprm/eabc.prm.

    EXTRACT EABC   USERID oggadm1@OGGSOURCE, PASSWORD "my-password" EXTTRAIL /path/to/goldengate/dirdat/ab   IGNOREREPLICATES GETAPPLOPS TRANLOGOPTIONS EXCLUDEUSER OGGADM1   TABLE EXAMPLE.TABLE;
  2. En el hub de Oracle GoldenGate, inicie sesión en la base de datos de origen y lance la interfaz de la línea de comandos de Oracle GoldenGate ggsci. En el siguiente ejemplo, se muestra el formato para iniciar sesión.

    dblogin oggadm1@OGGSOURCE
  3. Agregue datos transaccionales para activar el registro complementario para la tabla de base de datos.

    add trandata EXAMPLE.TABLE
  4. Con la línea de comandos ggsci, habilite la utilidad EXTRACT mediante los siguientes comandos.

    add extract EABC tranlog, INTEGRATED tranlog, begin now add exttrail /path/to/goldengate/dirdat/ab extract EABC, MEGABYTES 100
  5. Registre la utilidad EXTRACT con la base de datos de manera que no se eliminen los archivos de registro. Esta tarea le permite recuperar, si fuera necesario, transacciones antiguas sin confirmar. Para registrar la utilidad EXTRACT en la base de datos, utilice el siguiente comando.

    register EXTRACT EABC, DATABASE
  6. Inicie la utilidad EXTRACT con el siguiente comando.

    start EABC

Ejecución de la utilidad REPLICAT de Oracle GoldenGate

La utilidad REPLICAT "inserta" información sobre transacciones de los archivos de seguimiento en la base de datos de destino.

Los siguientes pasos habilitan e inician la utilidad REPLICAT para que pueda replicar los datos capturados en la tabla EXAMPLE.TABLE de la base de datos de destino OGGTARGET.

Para ejecutar la utilidad REPLICATE
  1. Configure el archivo de parámetros REPLICAT en el hub de Oracle GoldenGate (instancia local o de EC2). El siguiente listado muestra un archivo de parámetros REPLICAT de ejemplo denominado $GGHOME/dirprm/rabc.prm.

    REPLICAT RABC   USERID oggadm1@OGGTARGET, password "my-password"   ASSUMETARGETDEFS MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
    nota

    Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

  2. Inicie sesión en la base de datos de destino y lance la interfaz de la línea de comandos de Oracle GoldenGate (ggsci). En el siguiente ejemplo, se muestra el formato para iniciar sesión.

    dblogin userid oggadm1@OGGTARGET
  3. Con la línea de comandos ggsci, agregue una tabla de punto de comprobación. El usuario indicado debe ser la cuenta de usuario de Oracle GoldenGate, no el propietario del esquema de la tabla de destino. En el siguiente ejemplo, se crea una tabla de punto de comprobación llamada gg_checkpoint.

    add checkpointtable oggadm1.oggchkpt
  4. Para habilitar la utilidad REPLICAT, utilice el siguiente comando.

    add replicat RABC EXTTRAIL /path/to/goldengate/dirdat/ab CHECKPOINTTABLE oggadm1.oggchkpt
  5. Inicie la utilidad REPLICAT con el siguiente comando.

    start RABC

Supervisión de Oracle GoldenGate

Cuando utilice Oracle GoldenGate para la replicación, asegúrese de que el proceso de Oracle GoldenGate esté activo y en ejecución y que las bases de datos de origen y destino estén sincronizadas. Puede utilizar las siguientes herramientas de supervisión:

  • Amazon CloudWatch es un servicio de supervisión que se utiliza en este patrón para supervisar los registros de errores de GoldenGate.

  • Amazon SNS es un servicio de notificación de mensajes que se utiliza en este patrón para enviar notificaciones por correo electrónico.

Para obtener instrucciones detalladas, consulte Monitor Oracle GoldenGate logs by using Amazon CloudWatch (Supervisión de los registros de Oracle GoldenGate mediante Amazon CloudWatch).

Solución de problemas de Oracle GoldenGate

Esta sección explica los problemas más habituales al usar Oracle GoldenGate con Amazon RDS para Oracle.

Error al abrir un registro redo en línea

Asegúrese de configurar las bases de datos para que retengan los registros redo archivados. Tenga en cuenta estas directrices:

  • Especifique la duración de la retención de registros en horas. El valor mínimo es una hora.

  • Establezca la duración de manera que supere cualquier posible periodo de inactividad de la instancia de base de datos de origen, cualquier posible periodo de comunicación y cualquier posible periodo de problemas de red para la instancia de base de datos de origen. Dicha duración permite a Oracle GoldenGate recuperar registros de la instancia de base de datos de origen según sea necesario.

  • Asegúrese de que dispone de suficiente almacenamiento en la instancia para los archivos.

Si no tiene la retención de registros habilitada, o bien si el valor de retención es demasiado pequeño, recibirá un mensaje de error similar al siguiente.

2022-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 Not able to establish initial position for begin time 2022-03-06 06:16:55.

Oracle GoldenGate parece estar configurado correctamente, pero la replicación no está funcionando

Para tablas preexistentes, debe especificar el SCN desde el que trabaja Oracle GoldenGate.

Para solucionar este problema
  1. Inicie sesión en la base de datos de origen y lance la interfaz de la línea de comandos de Oracle GoldenGate (ggsci). En el siguiente ejemplo, se muestra el formato para iniciar sesión.

    dblogin userid oggadm1@OGGSOURCE
  2. Con la línea de comandos ggsci, configure el SCN de inicio para el proceso EXTRACT. En el siguiente ejemplo, se establece el SCN en 223274 para EXTRACT.

    ALTER EXTRACT EABC SCN 223274 start EABC
  3. Inicie sesión en la base de datos de destino. En el siguiente ejemplo, se muestra el formato para iniciar sesión.

    dblogin userid oggadm1@OGGTARGET
  4. Con la línea de comandos ggsci, configure el SCN de inicio para el proceso REPLICAT. En el siguiente ejemplo, se establece el SCN en 223274 para REPLICAT.

    start RABC atcsn 223274

La REPLICAT integrada es lenta debido a la consulta en SYS."_DBA_APPLY_CDR_INFO"

Con la detección y resolución de conflictos (CDR) de Oracle GoldenGate se ofrecen rutinas básicas de resolución de conflictos. Por ejemplo, con la CDR se puede resolver un conflicto distintivo de una instrucción INSERT.

Cuando la CDR resuelve una colisión, puede insertar registros en la tabla de excepciones _DBA_APPLY_CDR_INFO temporalmente. La REPLICAT integrada elimina estos registros después. En un escenario raro, la REPLICAT integrada puede procesar un gran número de colisiones, pero una REPLICAT integrada nueva no la reemplaza. En lugar de eliminarse, las filas que ya están en _DBA_APPLY_CDR_INFO quedan huérfanas. Los procesos REPLICAT integrados nuevos se ralentizan, pues están consultando filas huérfanas en _DBA_APPLY_CDR_INFO.

Para eliminar todas las filas de _DBA_APPLY_CDR_INFO, utilice el procedimiento rdsadmin.rdsadmin_util.truncate_apply$_cdr_info de Amazon RDS. Este procedimiento se publica como parte de la versión y actualización de parche de octubre de 2020. El procedimiento está disponible en las siguientes versiones de base de datos:

En el ejemplo siguiente se trunca la tabla _DBA_APPLY_CDR_INFO.

SET SERVEROUTPUT ON SIZE 2000 EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;