ORA-01555: Snapshot too old: rollback segment number too small (snapshot demasiado antiguo)
Oracle¿Qué significa?
Una consulta de larga duración no pudo acceder a los datos de undo antiguos necesarios para construir la imagen de lectura consistente a la hora de su inicio, porque esa información de undo fue sobrescrita.
¿Por qué ocurre?
Un tablespace de undo pequeño, un UNDO_RETENTION corto, consultas de larga duración con DML concurrente muy intenso, o un bucle que hace commit sobre la misma tabla dentro de una consulta (fetch across commit).
Cómo solucionarlo
Aumente UNDO_RETENTION y amplíe el tablespace de undo; cuando sea posible, déjelo en gestión automática (AUTOEXTEND activado). Divida las consultas largas en partes más pequeñas o ejecútelas fuera de horas pico. Considere RETENTION GUARANTEE: ALTER TABLESPACE undotbs1 RETENTION GUARANTEE. Corrija la lógica de la aplicación que hace commit dentro de un bucle.
Más entradas de este motor
- ORA-00054Resource busy and acquire with NOWAIT specified or timeout expired (recurso ocupado; NOWAIT especificado o tiempo de espera agotado)
- ORA-00060Deadlock detected while waiting for resource (deadlock detectado al esperar un recurso)
- ORA-01017Invalid username/password; logon denied (usuario/contraseña no válidos; inicio de sesión denegado)
- ORA-01652Unable to extend temp segment by N in tablespace (no se puede extender el segmento temporal en el tablespace)
- ORA-04031Unable to allocate N bytes of shared memory (no se pueden asignar N bytes de memoria compartida)
- ORA-12154TNS: could not resolve the connect identifier specified (no se pudo resolver el identificador de conexión)
- ORA-12514TNS: listener does not currently know of service requested in connect descriptor (el listener no conoce el servicio solicitado)