ORA-01555:snapshot too old

本文介绍了Oracle数据库在执行大数据更新时遇到的ORA-01555错误,该错误通常由回滚段不足引起。分析了导致此问题的三个主要原因,并探讨了自动回滚段管理的相关参数。提出了通过调整undo表空间大小、undo_retention参数和优化SQL执行计划等解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值