sql - Oracle Reyclebin 不释放空间
问题描述
我在 Oracle 12.1 上的数据库上工作。每当我们出于任何原因删除表时,它都会进入回收站。通常,每当我们构建另一个需要更多空间的表时,空间会自动在回收站中打开。最近,回收站根本没有释放空间。我必须手动清除回收站,否则我无法构建需要该空间的表。
我该怎么做才能确保回收站设置为仅在必要时自动清除自身?我不想要自定义脚本或自动化;我想按照设计和预期的方式使用回收站。
解决方案
您不应该依赖 Oracle 自动清除回收站,因为它的行为没有正确记录。手动清除回收站可能是最佳选择。
根据 Oracle 10g 文档,回收站是根据空间压力先进先出清除的。如果用户用完配额或表空间已满或需要扩展数据文件,则会发生空间压力。
这是一个好的开始,但该文档存在一些问题 - 它没有涵盖所有空间场景,例如完整的 ASM 磁盘组或 OS 驱动器,并且在 11g 或更高版本中不存在。我在 My Oracle Support 上也找不到任何相关信息。
Oracle 通常有很好的文档,而且很少会看到像这样的概念从手册中消失。也许这种行为在现代版本中完全改变了,现在它是如此奇怪和复杂,以至于没有人愿意记录它。或者也许他们只是忘记了。
如果可能,请使用手动清洗。或者可能考虑缩小一些数据文件以更接近地匹配磁盘组或操作系统限制;或许届时甲骨文会“看到”空间压力。
推荐阅读
- java - 在接口中添加新方法时如何摆脱覆盖所有类
- bitbucket - 输入 BitBucket 存储库时出现 TeamCity 错误
- python - Python Google Drive Api 限制下载速度
- excel - 如何仅让数字或“n/a”写入具有数据验证的特定列?
- r - 使用散点图和折线图向 ggplot 添加图例
- python - Python改变字节数组的长度
- scala - 如何用同一数据框中其他列的实际列值替换一列中的字符串值?第2部分
- go - “pq:抱歉,客户端太多” - 使用 Scan(),关闭行,但在某处出现连接泄漏
- python - 使用 splat 函数和 for 循环传递多个函数参数
- jquery - 需要建议,因为我正在尝试在 asp.net 上使用拖放网格以及引导模式