ORA-10655: Segment can be shrunk

文档解释

ORA-10655: Segment can be shrunk

Cause: Error message returned when called in probe mode by OEM

Action: None

ORA-10655是一个段缩小错误,当引擎试图从一个段中删除数据,而该段没有得到正确的支持时,它会发生。

官方解释

ORA-10655:段无法缩小。

此消息指示无法缩小数据段,因为它受到约束(例如,没有内容的内部/抛出块、重叠空闲空间、左右定界块)。

常见案例

如果您使用ALTER SEGMENT 命令试图缩小一个表空间上的段,例如要缩小一个索引,然后您可能会收到ORA-10655错误。这通常发生在当在表空间末尾没有可空间收缩时报告此错误。

正常处理方法及步骤

1.确定段收缩是否受限。

可以通过使用后台获得结果的SQL命令来实现:

SELECT * FROM DBA_SEGMENTS

WHERE SEGMENT_NAME = ‘segment_name’;

关注shrinkable_blks字段的值。如果它是0,则表明段收缩受限。

2.确定受限的原因。

可以通过使用后台获得结果的SQL命令来实现:

SELECT * FROM DBA_EXTENTS

WHERE SEGMENT_NAME = ‘segment_name’;

关注freelist_groups和pct_free字段的值。如果它们不完全等于0,则表明段收缩受限。

3.如果受限,请查询并解决受限原因。

例如,如果freelist_groups=1,则可以删除freelists组:

ALTER TABLE table_name NOLOGGING DROP STORAGE(FREELISTS 1);

4.收缩段。

ALTER SEGMENT segment_name SHRINK SPACE;

你可能感兴趣的