oem不支持直接图形化编辑簇、iot、lob段等复杂对象,仅提供查看、监控及有限操作;结构变更必须使用sql完成。
oem 本身不支持直接图形化编辑复杂段对象(如簇、iot、lob 段),它只提供查看、监控和基础操作能力。真正需要“管理”时,必须结合 sql 或 emca 工具完成。
为什么 OEM 界面里找不到簇或 IOT 的创建入口
OEM Database Control 的「Administration → Schema → Tables」页面只列出普通表、视图、索引等标准对象。簇(cluster)、索引组织表(IOT)、LOB 段这类需显式指定存储参数或结构约束的对象,OEM 未提供图形向导——这不是 bug,是设计取舍:Oracle 认为这类对象应由 DBA 显式控制,避免 GUI 隐藏关键细节引发空间或性能问题。
- 尝试在「Create Table」页面勾选「Index Organized」,你会发现该选项根本不存在
- 「Cluster」在 OEM 菜单中完全无对应入口,连「Create」按钮都不会出现
- 即使已存在簇,OEM 也只在「Storage」标签页显示其占用空间,无法修改
size或initial参数
哪些段操作能在 OEM 里安全执行
OEM 对段的图形化操作集中在「可用性」和「性能」维度,而非结构定义。能做的实际动作很有限:
- 在「Server → Storage → Tablespaces」中点击表空间 → 「Segments」标签页,可查看所有段类型(包括
CLUSTER、TABLE PARTITION、LOBSEGMENT)的物理信息(bytes、blocks、extents) - 对普通表执行「Reorganize」会触发
ALTER TABLE ... SHRINK SPACE,但该操作对簇无效,OEM 不会报错,只会静默跳过 - 「Segment Advisor」可分析任意段(含 IOT 和 LOB),但建议结果仍需人工确认后再执行
ALTER TABLE ... SHRINK SPACE COMPACT或MOVE - 删除段只能通过「Drop」按钮,但对簇必须先删成员表,否则 OEM 会报错
ORA-02277: invalid identifier(实际是 ORA-02277 并非此意,真实错误通常是 ORA-02431)
必须用 SQL 完成的关键段操作场景
一旦涉及结构变更,OEM 就得让位给 SQL*Plus 或 SQL Developer。常见强依赖 SQL 的情况:
- 创建簇:必须手写
CREATE CLUSTER emp_dept_cluster (deptno NUMBER) SIZE 500;,OEM 不提供字段类型、SIZE、INITIAL等参数输入框 - 启用 IOT 行移动:
ALTER TABLE customers_iot ENABLE ROW MOVEMENT;—— OEM 的「Reorganize」按钮对此表完全不可见 - 重建 LOB 段:
ALTER TABLE documents MOVE LOB(doc_content) STORE AS (TABLESPACE users ENABLE STORAGE IN ROW);,OEM 只能显示 LOB 段位置,无法调整ENABLE STORAGE IN ROW - 修改簇键索引:
CREATE INDEX emp_dept_idx ON CLUSTER emp_dept_cluster;,OEM 中该索引不会出现在「Indexes」列表,也无法从界面重建
真正麻烦的地方在于:OEM 的「Segment Advisor」可能建议收缩某个 LOBSEGMENT,但你点开详情页看到的「Reorganize」按钮是灰色的——因为 OEM 根本不支持 LOB 段在线收缩,必须切到命令行执行 ALTER TABLE ... MODIFY LOB (...) (SHRINK SPACE)。这种「建议了却干不了」的情况最容易让人误判工具能力边界。











