oracle – 如何在没有更新的情况下导致“ORA-01555:快照太旧错误”

前端之家收集整理的这篇文章主要介绍了oracle – 如何在没有更新的情况下导致“ORA-01555:快照太旧错误”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了ORA-01555:Oracle 9i的快照太旧错误,但根本没有使用此应用程序运行任何更新.

应用程序连接几个小时没有任何查询后发生错误,然后每个查询(否则将是亚秒级查询)返回ORA-01555:快照太旧:回滚段号6,名称为“_SYSSMU6 $”小.

这可能是事务隔离设置为TRANSACTION_SERIALIZABLE的原因吗?或者JDBC代码中的其他一些错误?这可能是由于jdbc-go driver中的一个错误引起的,但是我读到的关于这个错误的一切都让我相信没有DML语句的情况就不会发生.

解决方法

请阅读以下Tom Kyte对此错误的深入见解.您的案例中的问题可能来自所谓的“延迟块清除”.这是选择创建重做的情况.但是,根本原因几乎可以确定回滚段的大小不正确(但Tom添加为相关原因:提交过于频繁,许多更新后读取太大等).

snaphot too old error (Tom Kyte)

猜你在找的Oracle相关文章