Tengo un SP que borra una tabla en form secuencial, eliminando los registros más antiguos en bloques cortos de cerca de 5 minutos. Este borrado se está ejecutando sin ningún problema.
Este proceso usa un archivo administrado con UTL_FILE, de modo de generar un log del mismo proceso en cada ciclo de borrado, para luego poder analizar el comportamiento del SP y recuperar algunas métricas qu se van generando. El archivo abre, graba y cierra sin problemas.
Pero sucede que cuando el proceso está corriendo más de 36 seguidas empieza a comportarse de un modo extraño:
- Por un lado, el SP sigue borrando los registros, pero las metricas resultantes no se graban en el archivo de log.
- Por otro lado, luego de algunas horas, el borrado se va haciendo más lento, como si algo obstruyera el proceso.
Lo único que podemos hasta ahora determinar es que por alguna razón que no podemos determinar la grabación del log se detiene, y el buffer parece irse saturando, impidiendo primero los asientos y luego bloqueando el borrado de la tabla.
Estuve buscando documentación al respecto, pero hasta ahora no he encontrado menciones de un caso similar.
Para mas datos:
- El servidor es un Oracle 8i, montado sobre linux (no tengo acceso al sistema, por lo que no puedo saber la versión de éste).
- Nadie conoce todos los procesos y reglas programadosen el CRON, por lo que no se descarta que haya algo que esté afectando y no sepamos.
Antecedentes del caso:
- "Snapshot too old usando un indice sobre una fecha ¿?
-
ORA-01555: snapshot too old al usar BULK COLLECT en una tabla fija.