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安全错误
数据库的锁怎样保障安全
安卓软件开发 pdf
贵州特岗网络技术支持电话
小米网络安全防护怎么关
PS5登录B站连不上服务器
mc魔方服务器
尚艺网络技术部
oracle数据库ogg
ATM是不是无线网络技术
网络技术咨询的经营范围
信息操作题网络技术运用
dns服务器算主机吗
信息网络安全处置
配置rest管理服务器
防网络安全的内容
服务器无法连接到手机
微思敦网络技术
毕业找工作软件开发
服务器开机自检要多久
数据库系统应用期末考试
黑龙江新一代网络技术代理商
佛山网络安全认证几年有效
长沙开福区学习软件开发培训
成都软件开发设计
秘宝猎人安卓服务器
配置rest管理服务器
初学软件开发注意什么
19年网络安全和信息化
微软数据库登录长达30秒以上
查看sql数据库表数据量
超微服务器raid认不到