快照过老错误(ora-01555)成因:
1.undo段太小,不足以在系统上执行工作:由于回滚段是循环使用的,当事务提交以后,该事务占用的回滚段事物表会被标记为非活动,回滚短空间可以被覆盖重用,如果这时一个查询需要使用被覆盖的回滚段构造前镜像实现读一致性,那么此时就会出现快照过老错误(ora-01555)。
2.延迟块清除时:由于大量的commit,覆盖了undo段事物表中相关事务槽的事物条目信息,并且查询scn小于回滚段中记录的最小提交scn。
如果数据块中某行被锁定并且没有清除itl信息,而这时undo段事务表中相关的事物槽的事物条目信息已经被覆盖,那么oracle就无法判断查询开始时的scn(T1)和事物提交时的scn(T2)大小.
如果能判断:
t1>t2时,对数据块做延时块清除,返回该块中所需数据给查询.
t1
3.sqlldr直接方式加载:通过sqlldr direct=true 方式加载数据时,由于不产生重做和回滚信息,在访问这些数据是,可能会产生ora-01555错误。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20844861/viewspace-594787/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20844861/viewspace-594787/