es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El conector de Debezium intenta abrir un archivo de registro antiguo.

Tengo un conector de debezium que funciona bien, pero solo por un tiempo limitado. Estos errores ocurren en el archivo de registro:

Caused by: java.sql.SQLException: ORA-00308: no se puede abrir el archivo de registro archivado '+RECO/XXXXXXXX/ARCHIVELOG/2022_01_04/thread_1_seq_53874.3204.1093111215'
ORA-17503: ksfdopn:2 No se pudo abrir el archivo +RECO/XXXXXXXX/ARCHIVELOG/2022_01_04/thread_1_seq_53874.3204.1093111215
ORA-15012: El archivo ASM '+RECO/XXXXXX/ARCHIVELOG/2022_01_04/thread_1_seq_53874.3204.1093111215' no existe

He aprendido que en esta base de datos los archivos de registro se eliminan diariamente. ¿Mi conector está intentando leer un archivo de registro antiguo que ya no existe? ¿Cómo puedo indicarle a mi conector que verifique solo las últimas 12 horas, por ejemplo? ¿O debo hacer algo en el lado de la base de datos?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, parece que su conector debezium está intentando leer un archivo de registro antiguo que ya no existe en la base de datos. Para evitar tales errores, puede configurar su conector para que verifique solo los archivos de registro que se generaron dentro de un marco de tiempo específico. Esto se puede lograr especificando la hora de inicio y de finalización adecuadas en las propiedades snapshot.mode o snapshot.delay.ms de la configuración de su conector debezium.

    Por ejemplo, puede configurar snapshot.mode en when_needed y snapshot.delay.ms en 43200000 (que es igual a 12 horas en milisegundos) para indicarle a su conector que solo lea archivos de registro generados en las últimas 12 horas. Esto asegurará que su conector no intente leer archivos de registro antiguos que han sido eliminados de la base de datos.

    Alternativamente, también puede configurar el período de retención de los archivos de registro de la base de datos para que sea más largo, de modo que su conector tenga suficiente tiempo para procesar todos los archivos de registro antes de que sean eliminados. Esto se puede lograr modificando la configuración de la base de datos o contactando a su administrador de base de datos para obtener ayuda.

    En resumen, para evitar errores causados por archivos de registro eliminados, puede configurar su conector debezium para que solo lea archivos de registro generados dentro de un marco de tiempo específico o modificar el período de retención de los archivos de registro de la base de datos.

Comments are closed.