ORA-01555:SNAPSHOT TOO OLD浅析
文章出处:DIY部落(http://www.diybl.com/course/7_databases/oracle/oraclejs/200871/129622.html)
今天同事在做数据库服务器日监控检查时,在日志中发现了ORA-01555: snapshot too old.的错误。根据日志中显示的SQL代码,结合应用程序的日志信息,是由于应用程序作了一个大数据量的update,导致回滚段不足。
一般导致ORA-01555的原因是:
1. 回滚段数量不足,导致回滚段Transaction Slot被overwrite
2. 回滚段剩余空间不足,导致回滚段被overwrite
3. undo_retention(要大于执行运行时间最长的事务所需的时间)设置太小,导致expired回滚段被overwrite
Oracle9i以后,rollback segment一般采用自动回滚段管理,涉及的参数有:
undo_management string AUTO
undo_retention integer 3600
undo_suppress_errors boolean FALSE
undo_tablespace string undotbs1
在自动回滚段管理中,回滚段的数量是由系统来决定的。
回滚段的扩展则要取决于undo tablespace的设置
undo_retention的实现是要取决于un