首页 > 解决方案 > Oracle Reyclebin 不释放空间

问题描述

我在 Oracle 12.1 上的数据库上工作。每当我们出于任何原因删除表时,它都会进入回收站。通常,每当我们构建另一个需要更多空间的表时,空间会自动在回收站中打开。最近,回收站根本没有释放空间。我必须手动清除回收站,否则我无法构建需要该空间的表。

我该怎么做才能确保回收站设置为仅在必要时自动清除自身?我不想要自定义脚本或自动化;我想按照设计和预期的方式使用回收站。

标签: sqloraclerecycle-bin

解决方案


您不应该依赖 Oracle 自动清除回收站,因为它的行为没有正确记录。手动清除回收站可能是最佳选择。

根据 Oracle 10g 文档,回收站是根据空间压力先进先出清除的。如果用户用完配额或表空间已满或需要扩展数据文件,则会发生空间压力。

这是一个好的开始,但该文档存在一些问题 - 它没有涵盖所有空间场景,例如完整的 ASM 磁盘组或 OS 驱动器,并且在 11g 或更高版本中不存在。我在 My Oracle Support 上也找不到任何相关信息。

Oracle 通常有很好的文档,而且很少会看到像这样的概念从手册中消失。也许这种行为在现代版本中完全改变了,现在它是如此奇怪和复杂,以至于没有人愿意记录它。或者也许他们只是忘记了。

如果可能,请使用手动清洗。或者可能考虑缩小一些数据文件以更接近地匹配磁盘组或操作系统限制;或许届时甲骨文会“看到”空间压力。


推荐阅读