【问题标题】:How to shrink secure file LOBs in Oracle如何在 Oracle 中缩小安全文件 LOB
【发布时间】:2015-07-02 13:33:57
【问题描述】:

我今天注意到在 oracle 中用于收缩 LOB 的 SQL 命令在 12c 中不起作用。

ALTER TABLE SAMPLE_TABLE MODIFY lob (LOB_COLUMN) (SHRINK SPACE)

这会返回 oracle 错误

ORA-10635: 无效的段或表空间类型

在 oracle 文档中提到,SecureFiles LOB 不支持 SHRINK 选项。

我想知道 blob 如何在安全文件中进行压缩。 oracle 会在内部处理吗?

谢谢

【问题讨论】:

  • 我不确定,但我认为使用 SecureFile 存储时不再需要 shrink

标签: oracle shrink lob


【解决方案1】:
ALTER TABLE SAMPLE_TABLE MOVE LOB(LOB_COLUMN) STORE AS (TABLESPACE USERS)

注意:与阅读方式不同,这是一个move lob 操作。这是一个move TABLE 操作,同时也在移动一个高球。

这就是它使索引无效的原因,因为它移动整个表而不仅仅是 lob。当然,这可能需要很长时间,并且在操作过程中会消耗 2 倍的空间,因为 oracle 会复制数据,并且只有在完成后才会释放旧的段。

【讨论】:

    【解决方案2】:

    如果您想使用 SecureFiles 缩小 LOB,请使用以下语句:

    ALTER TABLE SAMPLE_TABLE MOVE LOB(LOB_COLUMN) STORE AS (TABLESPACE USERS)
    

    小心使用它 - 此命令会使SAMPLE_TABLE 上的所有索引无效,因此您应该在完成 LOB 后重建它们:

    ALTER INDEX <index_name> REBUILD;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-04
      • 2013-08-24
      • 2010-09-12
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 2015-01-02
      • 2013-05-08
      相关资源
      最近更新 更多