Solución de problemas de Oracle GoldenGate - Amazon Relational Database Service

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;