What does the Oracle error "ORA-1555" mean and how do I solve it? This occurs while monitoring the database on a server.
The ORA-1555 error is the Snapshot Too Old error. Oracle requires undo information in the rollback segments to create an image of modified data as it existed at the time the query was issued. Long running queries can lose the information in the rollback segments too quickly. When this happens, the ORA-1555 error is raised. There are a couple of ways to tackle this problem.
- Try running the query when no one is updating the tables the query refers to.
- Increase the number of rollback segments in the database.
- Increase the maximum number of extents for your rollback segments and ensure that the OPTIMAL parameter is not set for your rollback segments.
Life is easier with Automated Undo, available in Oracle 9i and 10g. If you are using one of those versions, I highly recommend employing Automated Undo. It won't totally eliminate ORA-1555 errors, but it can lessen their frequency.