Uno de los desafíos más críticos para un DBA que administra Oracle GoldenGate (OGG) es el crecimiento desmedido de la Fast Recovery Area (FRA). Al intentar depurar logs antiguos, es común encontrar el siguiente mensaje de advertencia:
RMAN-08137: warning: archived log not deleted, needed for standby or upstream capture process.
El origen del problema
Este mensaje indica que el proceso Extract de GoldenGate aún requiere esos Archivelogs para capturar cambios. El Extract no puede realizar un checkpoint (avanzar su marca de lectura) porque existe una transacción abierta de larga duración.
Mientras esa transacción no finalice con un COMMIT o ROLLBACK, GoldenGate obligará a RMAN a retener todos los logs generados desde el inicio de dicha transacción. Esto puede llenar la FRA rápidamente y comprometer la disponibilidad de la base de datos.
Diagnóstico: Identificación de sesiones críticas
Para identificar qué usuario o aplicación está bloqueando el avance del Extract, podemos utilizar el siguiente query. Este comando permite visualizar el inicio de la transacción, los datos del cliente y el volumen de bloques afectados:
select vs.inst_id, vt.xidusn, vt.xidslot, vt.xidsqn, vs.sid, vs.serial#, vs.client_identifier, vs.username, vs.program, vs.machine, vt.used_ublk, vt.start_time, TO_CHAR(SYSDATE, 'MM-DD-YYYY HH24:MI:SS') Current_Time from gv$transaction vt, gv$session vs where vt.addr = vs.taddr order by vt.start_time ;
Ejemplo de salida del Query
Al ejecutar la consulta, podrías observar un resultado similar a este, donde destaca una transacción con una fecha de inicio muy antigua:
INST_ID SID SERIAL# USERNAME PROGRAM USED_UBLK START_TIME CURRENT_TIME---------- ---- -------- ---------- -------------------- --------- -------------------- ------------------- 1 452 15243 APP_USER sqlplus.exe 12 04-02-2026 10:15:20 04-07-2026 21:05:10 2 128 8541 BATCH_PROC JDBC Thin Client 4502 04-07-2026 19:45:01 04-07-2026 21:05:10 1 891 22109 SYS sqlplus@srv-db (TNS) 1 04-07-2026 21:00:15 04-07-2026 21:05:10
Nota: En este ejemplo, la sesión 452 inició una transacción el 2 de abril y sigue abierta hoy 7 de abril. Esta diferencia de 5 días es la que impide que RMAN elimine los Archivelogs antiguos.
Plan de acción
Una vez localizado el SID y SERIAL#, el análisis debe seguir estos pasos:
- Validar estado: Revisar si la sesión está activa o si el valor de
used_ublkpermanece estático, lo cual suele indicar una sesión “zombie” o colgada. - Coordinación: Si es un proceso batch legítimo, se recomienda esperar su finalización o coordinar con el área responsable.
- Remediación: Si se trata de una sesión huérfana o un error del aplicativo que no cerró la conexión, se debe terminar la sesión para permitir que el Extract avance y libere los logs:
-- Ejecutar con los valores obtenidos del query anteriorALTER SYSTEM KILL SESSION '452,15243,@1' IMMEDIATE;
El mensaje RMAN-08137 funciona como un mecanismo de protección para evitar que GoldenGate pierda la continuidad de los datos. Sin embargo, la gestión proactiva de transacciones de larga duración es fundamental para mantener la estabilidad del almacenamiento y la salud general de la base de datos.
Dejar un comentario