匿名用户oracle undo表空间无法回收
undo表空间的数据文件开启了自动拓展,时间久了之后会变得很大,需要回收。
查看当前只占用500m,但是空间最小只能回收到20G,这是为什么?
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户undo表空间的数据文件开启了自动拓展,时间久了之后会变得很大,需要回收。
查看当前只占用500m,但是空间最小只能回收到20G,这是为什么?
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
墨值悬赏