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.
Temas
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
-
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
-
Con la línea de comandos
ggsci
, configure el SCN de inicio para el procesoEXTRACT
. En el siguiente ejemplo, se establece el SCN en 223274 paraEXTRACT
.ALTER EXTRACT EABC SCN 223274 start EABC
-
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
-
Con la línea de comandos
ggsci
, configure el SCN de inicio para el procesoREPLICAT
. En el siguiente ejemplo, se establece el SCN en 223274 paraREPLICAT
.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:
-
Versión 21.0.0.0.ru-2022-01.rur-2022-01.r1 y posteriores
-
Versión 19.0.0.0.ru-2020-10.rur-2020-10.r1 y posteriores
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;