网站首页 > 技术文章 正文
概述
因之前业务设计时很多接口都是在凌晨执行,所以凌晨undo都会急剧增加,而最近考虑到闪回问题,在增加undo_retention后接口报错快照过旧,这是什么问题呢?下面一起来看看吧~
报错内容
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
思路
ORA-01555 快照过旧,是数据库中很常见的一个错误,比如当我们的事务需要使用undo来构建CR块的时候,而此时对应的undo已经不存在了,这个时候就会报ORA-01555的错误。
ORA-01555错误在Oracle 8i及之前的版本最多。从9i开始的undo自动管理,至现在的10g、11g中的undo auto tuning,使得ORA-01555的错误越来越少。但是这个错误,仍然不可避免。
出现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方面的内容,感兴趣的朋友可以关注一下~
- 上一篇: 「Java基础知识」sql常用语句有哪些
- 下一篇: 面试时遇到“多线程事务怎么回滚?”该如何作答?
猜你喜欢
- 2024-11-02 拨云见日:揭开ORA-00600-「4193」的神秘面纱
- 2024-11-02 「故障处理」生产环境开启闪回报错ORA-38706
- 2024-11-02 面试时遇到“多线程事务怎么回滚?”该如何作答?
你 发表评论:
欢迎- 627℃几个Oracle空值处理函数 oracle处理null值的函数
- 621℃Oracle分析函数之Lag和Lead()使用
- 610℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 604℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 601℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 593℃【数据统计分析】详解Oracle分组函数之CUBE
- 584℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 567℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- oracle 19cOCM认证有哪些内容(oracle认证ocm月薪)
- Oracle新出AI课程认证,转型要持续学习
- oracle 表的查询join顺序,可能会影响查询效率
- Oracle DatabaseAmazon Web Services正式可用,Oracle数据库上云更容易了
- Oracle 19.28 RU 升级最佳实践指南
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 如何主导设计一个亿级高并发系统架构-数据存储架构(三)
- Java 后端开发必看!工厂设计模式轻松拿捏
- ORA-00600 「25027」 「x」报错(抱错孩子电视剧 爸爸是武术 另一个爸爸是画家)
- 新项目终于用上了jdk24(jdk新建项目)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)