Chinaunix首页 | 论坛 | 博客
  • 博客访问: 218977
  • 博文数量: 49
  • 博客积分: 1785
  • 博客等级: 上尉
  • 技术积分: 565
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-01 10:30
文章分类

全部博文(49)

文章存档

2013年(2)

2012年(7)

2011年(11)

2010年(6)

2009年(23)

我的朋友

分类: Oracle

2010-05-26 09:27:38

今天遇到一个问题,undo表空间占用率比较高。

查看undo_retention=900.而且当前别没有大的事务,应该会很快释放空间。为何没有释放呢?

经过查看文档,发现在oracle 10G,undo_retention的值实际上已经不起作用了,而是有v$undostat视图中的TUNED_UNDORETENTION这个字段的值来确定,这个值是有oracle动态算出的。

这虽然提高了undo的可用性,但是也会带来其他的问题甚至bug,如果undo的数据库文件是raw设备并且是不可扩展的,这样一开始TUNED_UNDORETENTION的值就会设置的非常大,undo的回收时间就会很长。这样当有大的事务产生时,也许会导致undo表空间满的错误。

解决方法是最好关闭oracle这个自动调整的功能
Alter system set "_undo_autotune" = false;  这个参数可以动态调整

也可以参看Bug 5387030


阅读(530) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~