oracle 11g rac ORA-01555快照过旧报错的处理方法
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,今天就跟大家聊聊有关oracle 11g rac ORA-01555快照过旧报错的处理方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。ORA
千家信息网最后更新 2025年11月07日oracle 11g rac ORA-01555快照过旧报错的处理方法
今天就跟大家聊聊有关oracle 11g rac ORA-01555快照过旧报错的处理方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
ORA-01555 快照过旧,是数据库中很常见的一个错误,比如当我们的事务需要使用undo来构建CR块的时候,
而此时对应的undo 已经不存在了, 这个时候就会报ORA-01555的错误。
环境是Oracle 11g RAC 由于客户执行一个比较复杂的SQL,使用PLSQL运行了88分钟后出现报错,这是一个要查看报表的SQL。
临时的处理方法如下:
以下为虚拟机模拟操作,建议数据库安装的时候这个参数一定要提前调整优化一下,不要使用默认值。
[root@ysdb1 ~]# su - oracle[oracle@ysdb1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 23 10:39:44 2016Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Testing optionsSYS@ysdb1>show parameter undo;NAME TYPE VALUE------------------------------------ ----------- ------------------------------undo_management string AUTOundo_retention integer 900 --默认15分钟undo_tablespace string UNDOTBS1SYS@ysdb1>SYS@ysdb1>alter system set undo_retention=10800 scope=both;System altered.
--查看表空间容量
SYS@ysdb1>col tablespace_name for a15SYS@ysdb1>col free_rate for a15SYS@ysdb1>SELECT a.tablespace_name, ROUND (a.total_size) "total_size(MB)", ROUND (a.total_size) - ROUND (b.free_size, 3) "used_size(MB)", ROUND (b.free_size, 3) "free_size(MB)", ROUND (b.free_size / total_size * 100, 2) || '%' free_rate FROM ( SELECT tablespace_name, SUM (bytes) / 1024 / 1024 total_size FROM dba_data_files GROUP BY tablespace_name) a, ( SELECT tablespace_name, SUM (bytes) / 1024 / 1024 free_size FROM dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name(+);TABLESPACE_NAME total_size(MB) used_size(MB) free_size(MB) FREE_RATE--------------- -------------- ------------- ------------- ---------------SYSAUX 600 178.625 421.375 70.23%UNDOTBS1 200 56.062 143.938 71.97%USERS 5 1 4 80%SYSTEM 700 287.5 412.5 58.93%UNDOTBS2 200 6.687 193.313 96.66%
SYS@ysdb1> SELECT tablespace_name, status, SUM (bytes) / 1024 / 1024 "Bytes(M)" FROM dba_undo_extents GROUP BY tablespace_name, status;TABLESPACE_NAME STATUS Bytes(M)TABLESPACE_NAME STATUS Bytes(M)--------------- --------- ----------UNDOTBS1 UNEXPIRED 11UNDOTBS2 UNEXPIRED 2.125UNDOTBS1 EXPIRED 44.0625UNDOTBS2 EXPIRED 3.5625
1.出现ORA-01555错误,通常有2种情况:
1)SQL语句执行时间太长,或者UNDO表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(即UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块(CR blocks)。 这种情况最多。
2)SQL语句执行过程中,访问到的块,在进行延迟块清除时,不能确定该块的事务提交时间与SQL执行开始时间的先后次序。 这种情况很少。
2.第1种情况解决的办法:
1)增加UNDO表空间大小
2)增加undo_retention 时间,默认只有15分钟
3)优化出错的SQL,减少查询的时间,首选方法
4)避免频繁的提交
看完上述内容,你们对oracle 11g rac ORA-01555快照过旧报错的处理方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
时间
方法
情况
空间
快照
处理
事务
内容
数据
时候
错误
频繁
一致
一致性
数据库
语句
过程
复杂
先后
办法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
画多字少网络安全手抄报内容
软件开发每天干什么
php多主写数据库
济南定制软件开发教程
龙软科技有工业互联网
标准普尔数据库的企业评级
石家庄网络安全课堂
百里平台网络技术
互联网络安全教育的手抄报
软件开发与应用是学什么的
bs软件开发方法
第一届全国网络安全学院院长论坛
ie找不到服务器或dns
重庆网络安全大使
2019学什么网络技术好
软件开发提交版本规范
嵌入式数据库db2
安卓软件开发要什么证书
加强网络安全信息采集
自动化点胶机软件开发
应用软件开发测试
沈阳软件开发驻场哪家好
软件开发常年服务协议
百度来源数据库
龙芯软件开发有限公司
数据库营销的主要环节有哪些
广州光纤网络技术开发展示
石基网络技术服务
网络安全快板题目
对于网络安全误解