暂无图片
oracle undo表空间无法回收
我来答
分享
暂无图片 匿名用户
oracle undo表空间无法回收

undo表空间的数据文件开启了自动拓展,时间久了之后会变得很大,需要回收。
查看当前只占用500m,但是空间最小只能回收到20G,这是为什么?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
广州_老虎刘

undo表空间内部由多个自动管理的rollback segment组成,  你说的这种情况, 就是有的rollback segment在表空间的很高的高水位上(dba_extents里面可以查, block_id最大对应的rollback segment), 它的存在, 导致你只能回收undb表空间到这个高水位的位置.

如果要降低undo表空间大小, 两种方法:

1. 新建一个undo表空间new_undo, alter system set undo_tablespace=new_undo;   这种是常见做法

2.把最高水位上的rollback segment删掉: 需要先offline, 改参数, 重启, drop多个步骤, 很复杂, 很少用.  删掉之后就可以resize了.

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏