记录一次 ORA-01555错误

最近生产环境,我们的任务调度系统每天早上6点执行任务,执行存过加工数据时,好几个任务出现了ORA-01555错误,此错误是因为undo旧照过久导致。

了解到一般引起的原因有两种

1、查询时有大量更新数据操作,导致查询的数据已无法从undo查到。

2、sql查询时间太慢,以至于要查询的数据还有没查询完,数据被已被更新。

第二种原因比较好理解,如:有一张Y表有2000W数据,7:00分A查询Y表,7:01分B使用索引更新了第1500W条的数据进行了commit,此时A查询还没有传到第1500W条数据,等到A查询到第1500W条数据时,此时出现ORA-01555错误。

但第一种原因不是很理解,是因为同时执行insert into select操作过多且数据量过多,导致undo空间满了导致?

在早上调用调用存过执行insert into select操作的那个时间段没有所查询表的更新操作。但是连续三天出现此错误。因一时半会定位不到原因。所以先让DBA将undo空间加大了一倍,后续再定位原因。

此问题先记录,待定位到具体原因再补充

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值