love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

about Undo Tablespace used High ?

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: about Undo Tablespace used High ?

今天有朋友在问关于undo 使用很高的问题,这个问题其实很常见了,上次也正好处理过一起,客户的
3节点rac,undo使用很高,当时操作后留了一份简单的记录,今天我发出来,供大家参考!

关于ucp库,undo使用较高的问题:
通过如下sql检查可以看到母亲undotbs1使用比较高,且目前undotbs1已经80g了。

通过上面查询,看到ucp1节点上undo extents,绝大部分是unexpired的,其中是unexpired的。 通常情况下,,如果
unexpired extent过多,说明是存在大量的事务,但是事实上这里并不是这样。 故有理由相信是oracle undo 自动调节
的缘故,如下:

从oracle 10.2开始,该隐含参数默认为true,虽然在后面版本中修复了大量的bug,但是仍然存在一些问题。
例如 Bug 9681444 : TUNED_UNDORETENTION CAN BE TOO HIGH AFTER DB BOUNCE IF HIGH WORKLOAD BEFORE
该bug,实际上要在oracle 12.1版本中才能修复。

对于undo datafile是非自动扩展的情况下,oracle为了避免ora-01555错误,会进行undo_retention的自动调节。

在oracle进行undo_retention自动调节的情况下,手工设置的参数undo_retention将通常不会起作用。

关于undo_retention oracle有如下2种机制:

1) undo datafile autoextend off

结合undo表空间的大小,根据v$undostat.TUNED_UNDORETENTION来决定undo_retention的大小,这种情况下,
往往TUNED_UNDORETENTION的值都非常大。

2)在undo为自动调节的情况下,undo_retention的计算是根据v$undostat.MAXQUERYLEN+300来判断,
最后取(MAXQUERYLEN+300,undo_retention,) 中的最大值。

目前ucp的undo datafile 均为非自动扩展,如下:

oracle针对该问题有如下3种解决方案:

调整之后,观察了一会儿,发现有一定效果,如下:

等到第二天再去观察,发现undo基本上都比较正常了,均维持在50%左右,如下:

整个过程三非常简单的,供大家参考!

7 Responses to “about Undo Tablespace used High ?”

  1. about Undo Tablespace used High ? | 编程 Says:

    […] 详见原文地址:about Undo Tablespace used High ? 作者:lovewifelovelife 发表于2012-12-7 14:41:33 原文链接 阅读:26 评论:0 查看评论 […]

  2. Jieyancai Says:

    这个系统的oracle版本是10.2.x.x的?

  3. Oracledba Says:
  4. 不会再感觉寂寞 Says:

    其实如果我觉得不再爱你,就不会再感觉寂寞。有些事情注定无能为力,所以只剩下悲伤。爱的最后你还是你,我却不是那个自己。我用一秒钟爱上你却要用我一生的时间来忘记你。…

  5. Lonion Says:

    文中说『 通常情况下,如果unexpired extent过多,说明是存在大量的事务,但是事实上这里并不是这样。 故有理由相信是oracle undo 自动调节的缘故』
    针对这句话,我有以下疑问:
    >>如果是因为存在大量的事务导致unexpired extent过多,怎么来判断是否存在大量的事务?

  6. 指甲花开 Says:

    指甲花开在女孩子的指尖。嘁嘁喳喳的笑声和顽皮的嬉闹被一缕缕鲜红的光线追逐,午后的阳光笑了,还有那个叫小秋的男孩子也笑了。 小秋在缭乱的光芒中,眼睛一直追逐最鲜艳和纤细的那一缕,不肯…

  7. Jimmy Says:

    同问:>>如果是因为存在大量的事务导致unexpired extent过多,怎么来判断是否存在大量的事务?

Leave a Reply

You must be logged in to post a comment.