`

undo表空间居高不下和enq: US - contention

 
阅读更多

这几天遇到一个错误,我也不知道算不算错误吧,因为没有报错,只是在那突然的短短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"=;

分享到:
评论

相关推荐

    undo引起的告警.txt

    当系统activity增加或者降低的时候,oracle SMON进程会自动ONLINE或者OFFLINE rollback segments。这样导致某些与undo segments相关的latch或者enqueue被...导致系统很多活跃session都开始等待enq: US - contention。

    seata的快照表:undo-log

    seata的快照表:undo-log

    脚本-Oracle释放过度使用的Undo表空间

    ### 关于Oracle释放过度使用的Undo表空间的知识点 在Oracle数据库管理中,Undo表空间扮演着极其重要的角色。它主要用于存储事务处理过程中产生的Undo记录,这些记录对于事务回滚、一致性读取以及恢复操作至关重要。...

    oracle 收缩undo表空间

    在Oracle数据库管理中,有时需要对Undo表空间进行管理和优化。特别是当Undo表空间因为历史数据积累而变得过大时,可能会影响数据库性能。本文将详细介绍如何通过新建一个Undo表空间并替换原有的Undo表空间来实现其...

    CAD快捷键大全-2011.pdf

    AutoCAD是一款广泛应用于工程和设计领域的计算机辅助设计软件,它提供了丰富的绘图、编辑和标注功能。本篇文章将详细介绍在“CAD快捷键大全-2011.pdf”中提到的一些核心快捷键及其对应的命令,帮助用户提高绘图效率...

    CAD快捷键命令表_最实用的-1.pdf

    标题中的"CAD快捷键命令表_最实用的-1.pdf"表明了这份文档是一个关于CAD(计算机辅助设计)软件中的快捷键命令列表。快捷键是提高绘图效率的重要工具,它们可以允许用户通过键盘操作迅速执行各种命令。 描述中重复...

    Oracle的Temp表空间和UNDO表空间的处理

    通过以上介绍可以看出,在Oracle数据库中,正确管理和优化Temp表空间和UNDO表空间是非常重要的,尤其是对于那些执行大量排序、分组操作以及频繁进行事务处理的应用系统来说。合理利用Resize调整大小、替换原有表空间...

    AUTOCAD2004快捷键指南.pdf

    AutoCAD是Autodesk公司开发的一款计算机辅助设计...然而,由于文档扫描识别问题,可能有些快捷键的功能描述不够准确或完整,操作者在使用时需要结合实际情况,并参考官方的AutoCAD帮助文档和指南来确保正确的使用方法。

    undo表空间恢复

    标题和描述均提到了“undo表空间恢复”,这在Oracle数据库管理中是一个关键主题,尤其对于数据恢复和事务处理有着重要影响。以下是对这一知识点的深入解析: ### 一、Undo表空间概述 Undo表空间是Oracle数据库中...

    oracle 9i UNDO表空间数据文件丢失恢复

    ### Oracle 9i UNDO 表空间数据文件丢失恢复知识点详解 #### 一、概述 在Oracle数据库管理中,UNDO表空间是非常重要的组成部分之一,主要用于存储事务处理期间的回滚信息。当UNDO表空间的数据文件丢失时,可能会...

    数据库undo表空间问题集锦

    切换undo表空间通常发生在现有的undo表空间不足以满足需求或者需要优化性能时。通过ALTER SESSION命令可以设置当前会话使用的undo表空间,全局的默认undo表空间则通过初始化参数UNDO_TABLESPACE设置。在切换前,...

    快捷键GoogleSketchUp.pdf

    Google SketchUp是一款易于使用但功能强大的3D建模软件,广泛应用于建筑、室内设计、景观建筑以及视频游戏开发和电影制作等行业。掌握快捷键的使用可以大幅提升工作效率,以下是根据提供的文件内容总结的SketchUp...

    Oracle中重做undo表空间

    - 自动管理:Oracle 9i引入了自动 Undo 管理(Automatic Undo Management, AUM),默认情况下,数据库会自动管理undo表空间,包括分配和回收空间。 - 手动管理:在AUM之前,管理员需要手动创建和管理undo段,这...

    UG快捷键

    - Undo/Redo:撤销/重做 - Properties:查看对象属性 - Layers:管理图层 - Dimension Style:尺寸标注样式 8. 查找和帮助: - F1:打开帮助 - Find:查找功能或命令 9. 模型分析: - Section:创建截面...

    管理undo表空间全面分析详解

    ### 管理undo表空间全面分析详解 #### 一、引言 在Oracle数据库管理中,`undo表空间`的管理是一项至关重要的任务。它不仅关乎数据的一致性和完整性,还直接影响到数据库的性能。本文将从DML语句与undo的关系入手,...

    cad快捷命令

    - 这些命令提供了丰富的功能,包括测量、视图管理、撤销重做等,是日常绘图不可或缺的工具。 #### AutoCAD快捷键 - **三维阵列**:3A - **三维动态观察器**:3DO - **三维表面**:3F - **三维多义线**:3P - **圆弧...

    IPv6技术课件:EUI-64生成IPv6地址.pdf

    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表空间

    演示如何收缩Oracle数据库的undo表空间

Global site tag (gtag.js) - Google Analytics