这几天遇到一个错误,我也不知道算不算错误吧,因为没有报错,只是在那突然的短短2分钟内表的操作突然降低了,导致了该软件重新启动。查看alert日志没有报错,而是在ASH里找到了TOP SQL框有一个这样的错误,使我百思不得其解。查看该SQL语句只是简单的一个更新,并不需要优化。最后再百度、google的帮助下终于找到了错误原因,原来与UNDO的设置有关。首先来介绍下undo_retention参数,该参数是撤销段的最短保留时间,而在默认情况下Oracle将根据表空间的大小和历史使用情况,自动调整undo信息保存时间,同时忽略 undo_retention的值,除非undo_retention的guarantee 特性被启用.也就是执行以下命令:
ALTER TABLESPACE UNDOTBS RETENTION GUARANTEE;
在自动调整启用的情况下,实际的撤销信息最短保留时间可以通过查询V$UNDOSTAT视图上的TUNED_UNDORETENTION列获得。往往最短保存时间远远大于设定的UNDO_RETENTION。UNDO自动优化功能能够最大限度的使用undo表空间,满足大部分的sql执行,但是也带来一个问题:很多事务执行完毕之后,发现UNDO表空间会在很长时间都一直保持着使用率是接近100%的状态,active 状态的很少。这种接近状态还无法手工的收缩,甚至于重启数据库实例也无法缓解,而此时常常会收到undo表空间的监控报警。
再来说说enq: US - contention问题
这是oracle10g中开始出现的bug(在11.1.0.7中仍有这个BUG),当因为系统activity增加或者降低的时候,oracle SMON进程会自动ONLINE或者OFFLINE rollback segments。这样导致某些与undo segments相关的latch或者enqueue被hold住太长时间,导致系统很多活跃session都开始等待enq: US - contention。可以同时使用以下解决方法:
1. 设置event让SMON不自动OFFLINE回滚段。
alter system set events '10511 trace name context forever, level 1';
2. 设置参数_rollback_segment_count :表示有多少rollback segment要处于online的状态;可以将该数值设置为数据库最繁忙的时候的回滚段数目。
alter system set "_rollback_segment_count"=;
这里以‘_’开头的为隐藏参数,通过show parameter 是看不到的,可以通过以下语句:
select a.ksppinm name, b.ksppstvl value, a.ksppdesc description
from x$ksppi a, x$ksppcv b
where a.indx = b.indx
and a.ksppinm like '%_rollback_segment_count%';
3. undo autotune bug多多。最好disable。
alter system set "_undo_autotune"= false;
这种方法就是关闭了UNDO的自动调整功能,同事也能解决掉UNDO表空间会在很长时间都一直保持着使用率是接近100%的问题。
4. 有一个patch: A fix to bug 7291739 is to set a new hidden parameter, _highthreshold_undoretention to set a high threshold for undo retention completely distinct from maxquerylen.
alter system set "_highthreshold_undoretention"=;
相关推荐
当系统activity增加或者降低的时候,oracle SMON进程会自动ONLINE或者OFFLINE rollback segments。这样导致某些与undo segments相关的latch或者enqueue被...导致系统很多活跃session都开始等待enq: US - contention。
seata的快照表:undo-log
### 关于Oracle释放过度使用的Undo表空间的知识点 在Oracle数据库管理中,Undo表空间扮演着极其重要的角色。它主要用于存储事务处理过程中产生的Undo记录,这些记录对于事务回滚、一致性读取以及恢复操作至关重要。...
在Oracle数据库管理中,有时需要对Undo表空间进行管理和优化。特别是当Undo表空间因为历史数据积累而变得过大时,可能会影响数据库性能。本文将详细介绍如何通过新建一个Undo表空间并替换原有的Undo表空间来实现其...
AutoCAD是一款广泛应用于工程和设计领域的计算机辅助设计软件,它提供了丰富的绘图、编辑和标注功能。本篇文章将详细介绍在“CAD快捷键大全-2011.pdf”中提到的一些核心快捷键及其对应的命令,帮助用户提高绘图效率...
标题中的"CAD快捷键命令表_最实用的-1.pdf"表明了这份文档是一个关于CAD(计算机辅助设计)软件中的快捷键命令列表。快捷键是提高绘图效率的重要工具,它们可以允许用户通过键盘操作迅速执行各种命令。 描述中重复...
通过以上介绍可以看出,在Oracle数据库中,正确管理和优化Temp表空间和UNDO表空间是非常重要的,尤其是对于那些执行大量排序、分组操作以及频繁进行事务处理的应用系统来说。合理利用Resize调整大小、替换原有表空间...
AutoCAD是Autodesk公司开发的一款计算机辅助设计...然而,由于文档扫描识别问题,可能有些快捷键的功能描述不够准确或完整,操作者在使用时需要结合实际情况,并参考官方的AutoCAD帮助文档和指南来确保正确的使用方法。
标题和描述均提到了“undo表空间恢复”,这在Oracle数据库管理中是一个关键主题,尤其对于数据恢复和事务处理有着重要影响。以下是对这一知识点的深入解析: ### 一、Undo表空间概述 Undo表空间是Oracle数据库中...
### Oracle 9i UNDO 表空间数据文件丢失恢复知识点详解 #### 一、概述 在Oracle数据库管理中,UNDO表空间是非常重要的组成部分之一,主要用于存储事务处理期间的回滚信息。当UNDO表空间的数据文件丢失时,可能会...
切换undo表空间通常发生在现有的undo表空间不足以满足需求或者需要优化性能时。通过ALTER SESSION命令可以设置当前会话使用的undo表空间,全局的默认undo表空间则通过初始化参数UNDO_TABLESPACE设置。在切换前,...
Google SketchUp是一款易于使用但功能强大的3D建模软件,广泛应用于建筑、室内设计、景观建筑以及视频游戏开发和电影制作等行业。掌握快捷键的使用可以大幅提升工作效率,以下是根据提供的文件内容总结的SketchUp...
- 自动管理:Oracle 9i引入了自动 Undo 管理(Automatic Undo Management, AUM),默认情况下,数据库会自动管理undo表空间,包括分配和回收空间。 - 手动管理:在AUM之前,管理员需要手动创建和管理undo段,这...
- Undo/Redo:撤销/重做 - Properties:查看对象属性 - Layers:管理图层 - Dimension Style:尺寸标注样式 8. 查找和帮助: - F1:打开帮助 - Find:查找功能或命令 9. 模型分析: - Section:创建截面...
### 管理undo表空间全面分析详解 #### 一、引言 在Oracle数据库管理中,`undo表空间`的管理是一项至关重要的任务。它不仅关乎数据的一致性和完整性,还直接影响到数据库的性能。本文将从DML语句与undo的关系入手,...
6. 允许接口发送RA报文:undo ipv6 nd ra halt 查看接口的IPv6地址可以使用display ipv6 interface命令。例如,display ipv6 interface GigabitEthernet 0/0/0可以查看GigabitEthernet 0/0/0接口的IPv6地址。 本...
演示如何收缩Oracle数据库的undo表空间
6. **工具栏和视图控制**: - 切换选择过滤器工具栏:F5 - 切换选择过滤器(开/关):F6 - 视图定向菜单:空格键 7. **文件操作**: - 新建文件:Ctrl+N - 打开文件:Ctrl+O - 从WEB文件夹打开:Ctrl+W - 从...