小编Jim*_*son的帖子

如何回收已删除LOB的存储空间

我有一个LOB表空间.目前持有9GB的12GB可用.而且,据我所知,删除记录不会回收表空间中的任何存储.(这是通过监视存储的简单方法 - 针对user_extents的查询,这是我作为非DBA所允许的所有内容)我担心处理进一步处理.

我担心的是空间不足 - 我们在12GB的桌面空间可用大约9 GB,我想知道在要求更多空间之前如何回收空间.

LOB列存储在单独的表空间中,但允许"存储在行中"用于小型表空间.

这是Oracle 11.1,数据位于同一个表中的CLOB和BLOB列中.LOB索引段(SYS_IL ...)很小,所有存储都在数据段中(SYS_LOB ...)

我们试过purge和coalesce并没有得到任何地方 - 在user_extents中相同的字节数.

"改变表xxx移动"将起作用,但是我们需要有一个地方将其移动到有足够空间容纳修改后的数据.当然,我们还需要在非工作时间完成这项工作并重建索引,但这很容易.

复制好数据并进行截断,然后将其复制回来也是有效的.但这几乎就是"alter table"命令的作用.

我是否遗漏了一些简单的方法来缩减内容并恢复存储?或者是"改变表xxx移动"的最佳方法?或者这是一个非问题,Oracle会在需要时从已删除的lob行中获取空间吗?

oracle

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

oracle ×1