oracle 11g rac ORA-01555快照过旧报错的处理方法
发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,今天就跟大家聊聊有关oracle 11g rac ORA-01555快照过旧报错的处理方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。ORA
千家信息网最后更新 2024年10月21日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安全错误
数据库的锁怎样保障安全
西安华为软件开发
如何购买国外服务器和域名
网络安全团课记录内容
wamp的数据库连接
h3c服务器查看固件版本信息
移动dns服务器地址首选哪个好
那数据库类型有哪些
.net 备份数据库
dns采用的是什么数据库系统
电脑服务器经常死机
支付网络技术维护费
软件开发学习培训班
linux服务器开源项目
大数据平台软件开发合同
登陆梦幻西游没有服务器选择
海陵区环保网络技术价格表格
苏州戴尔服务器
上海智能化网络技术转让价目表
软件开发专业名词术语
河南贝佰优网络技术有限公司
网络安全的英语黑板报
腾业管理软件开发平台
网络技术风险对策
群体感应淬灭数据库
软件开发后如何选取权衡
宝塔搭建局域网服务器
志愿者网络安全宣讲百度文库
tftp服务器搭建
美脚数据库
上海智能化网络技术转让价目表