ORA-01555: Snapshot too old: rollback segment number too small
OracleWhat does it mean?
A long-running query could not access the old undo data needed to build the read-consistent image as of its start time, because that undo information was overwritten.
Why does it happen?
A small undo tablespace, a short UNDO_RETENTION, long-running queries during very heavy concurrent DML, or a loop that commits on the same table inside a query (fetch across commit).
How to fix it
Increase UNDO_RETENTION and enlarge the undo tablespace; where possible leave it under automatic management (AUTOEXTEND on). Split long queries into smaller pieces or run them off-peak. Consider RETENTION GUARANTEE: ALTER TABLESPACE undotbs1 RETENTION GUARANTEE. Fix application logic that commits inside a loop.
More from this engine
- ORA-00054Resource busy and acquire with NOWAIT specified or timeout expired
- ORA-00060Deadlock detected while waiting for resource
- ORA-01017Invalid username/password; logon denied
- ORA-01652Unable to extend temp segment by N in tablespace
- ORA-04031Unable to allocate N bytes of shared memory
- ORA-12154TNS: could not resolve the connect identifier specified
- ORA-12514TNS: listener does not currently know of service requested in connect descriptor