yang738 发表于 2014-9-30 08:20:38

关于回滚段及1555错误的一个疑问

根据ORACLE文档,回滚段不会覆盖未提交事务的BEFORE-IMAGE数据。如果事务提交了,回滚段的BEFORE-IMAGE数据就可能被OVERWRITE.
而且如果有些需要的回滚段的BEFORE-IMAGE数据被OVERWRITE,就会发生 1555错误。


我的疑问是:
如果事务未提交,ORACLE 不会覆盖BEFORE-IMAGE,应该不会有1555错误。
如果事务已提交,ORACLE是READ COMMITED,就不应该需要BEFORE-IMAGE数据。 也不应该会发生1555错误。

当然,我知道1555错误是经常发生的。 我想确认下,1555错误是在哪种情况下发生的? 或者我对ORACLE的文档有理解不正确的地方?

多谢先。

菜鸟一枚 发表于 2016-8-31 20:55:00

1.你的事务没有提交,但是Itl已经有了lock标志,就会去一致读,就存在ORA-01555错误的存在
2.你的事务提交了,但是Commit SCN 大于你的查询时候的SCN 同样需要一致读,所以也同样存在错误发生的可能。
页: [1]
查看完整版本: 关于回滚段及1555错误的一个疑问