详解4个方法–解决Oracle快照过旧问题

详解4个方法–解决Oracle快照过旧问题概述因之前业务设计时很多接口都是在凌晨执行,所以凌晨undo都会急剧增加,而最近考虑到闪回问题。在增加undo_retention后接口报错快照

欢迎大家来到IT世界,在知识的湖畔探索吧!

概述

因之前业务设计时很多接口都是在凌晨执行,所以凌晨undo都会急剧增加,而最近考虑到闪回问题,在增加undo_retention后接口报错快照过旧,这是什么问题呢?下面一起来看看吧~

详解4个方法--解决Oracle快照过旧问题


报错内容

详解4个方法--解决Oracle快照过旧问题

ORA-01555 快照过旧 回退段号 10 (名称为 _SYSSMU10_3452551959$ ) 过小
ORA-06512 在 RFUSER.SPLIT_OTM_OM_NEW , line 343
ORA-06512 在 line 1
======= at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
 at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
 at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
 at System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
 at FSL.Business.SP_OtmShipmentDataInOut.RF_SQL_Handle_MoreThan.Start(Int32 ioID, String ConnectionName) in d \IT_SVN\SourceCode\RF系统\RF_ReConstruction\FSL.Business.SP_OtmShipmentDataInOut\RF_SQL_Handle_MoreThan.cs line 43

欢迎大家来到IT世界,在知识的湖畔探索吧!

详解4个方法--解决Oracle快照过旧问题


思路

ORA-01555 快照过旧,是数据库中很常见的一个错误,比如当我们的事务需要使用undo来构建CR块的时候,而此时对应的undo已经不存在了,这个时候就会报ORA-01555的错误。

ORA-01555错误在Oracle 8i及之前的版本最多。从9i开始的undo自动管理,至现在的10g、11g中的undo auto tuning,使得ORA-01555的错误越来越少。但是这个错误,仍然不可避免。

详解4个方法--解决Oracle快照过旧问题

出现ORA-01555错误,通常有2种情况:

(1)、SQL语句执行时间太长,或者undo表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(既UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块(CR blocks)。这种情况最多。

(2)、SQL语句执行过程中,访问到的块,在进行延迟块清除时,不能确定该块的事务提交时间与SQL执行开始时间的先后次序。这种情况很少。


解决的办法:

针对第一种情况解决办法

(1)、增加UNDO表空间大小;

(2)、增加undo_retention时间,默认只有15分钟;

(3)、优化出错的SQL,减少查询的时间,首选方法;

(4)、避免频繁的提交

这里在增加undo表空间后问题得到解决。


后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

详解4个方法--解决Oracle快照过旧问题

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22475.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信