WEB开发网
开发学院数据库Oracle ORA-01555错误浅析(3) 阅读

ORA-01555错误浅析(3)

 2009-05-26 13:14:39 来源:WEB开发网   
核心提示: 以上总结了解决1555错误的各种办法,具体采用哪种方式,ORA-01555错误浅析(3)(5),就需要根据错误产生的实际情况来决定了,实例分析实际上,设置它使用了一个大的回滚段:RBS_BATCH1,先看看相关配置:rollback tablespace空间为8G,你在了解了1555错误为

以上总结了解决1555错误的各种办法,具体采用哪种方式,就需要根据错误产生的实际情况来决定了。

实例分析

实际上,你在了解了1555错误为什么会发生的前提,遇到了1555错误就不应该再手足无措了。但是,根据我个人的经验,大多数的1555错误的发生,其根本原因还是语句写得太烂,导致了大量的consistent gets和超长的执行时间,最后引发了1555错误。下面就是一个典型例子:

错误的发生

近来生产系统反馈,时常有作业被异常中止,导致应用程序被hung住。经过检查日志,是某个作业在运行时发生了1555错误,导致程序无法返回结果:

*

ERROR at line 1:

ORA-01555: snapshot too old: rollback segment number 9 with name "RBS08" too small

ORA-06512: at "SQLUSER.EXT_PKG", line 4917

ORA-06512: at line 1

相关程序记录下的日志:

STAT-S.20060313185536.lg = 2 processed =20060313185536 end date

Error = ORA-01555: snapshot too old: rollback segment number 9 with name "RBS08" too small

BEGIN ext_pkg.main('extfiles','50','EAT'); END;

错误分析解决

这是一个典型的1555错误。检查引发该错误的PACKAGE,发现它只有一个入口函数main(及程序日志中记录的函数),但这个函数还调用了其他N个PACKAGE里面的函数。这是一个大作业,执行时,设置它使用了一个大的回滚段:RBS_BATCH1。

先看看相关配置:rollback tablespace空间为8G,undo_retention为1800。

看看回滚段的统计数据:

 SQL> Select rn.Name "Rollback Segment", rs.RSSize/1024 "Size (KB)", rs.Gets "Gets",

上一页  1 2 3 4 5 6 7 8  下一页

Tags:ORA 错误 浅析

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接