0
点赞
收藏
分享

微信扫一扫

ORA-01654: Unable To Extend Index %s.%s By %s In Tablespace %s


最近遇到一个报错

ORA-1654: unable to extend index SYS.TEST_N3 by 6815744 in tablespace SYSTEM

查询文档发现有挺多种情况会导致这个问题,整理一下排查思路

 

1. 查报错表空间使用率,看是否已满

发现system表空间使用率只有70%左右,剩余20多G

 

2. 查对应表空间最大连续可用空间

SELECT max(bytes) FROM dba_free_space WHERE tablespace_name = '<tablespace name>';

发现远大于6.8M

 

3. 查对应表空间NEXT_EXTENT size  

select d.FILE_NAME,
       d.AUTOEXTENSIBLE,
       d.BYTES / 1024 / 1024 MB,
       d.INCREMENT_BY * 8 / 1024 INCREMENT_MB,
       d.MAXBYTES / 1024 / 1024 max_mb
  from dba_data_files d
 where d.tablespace_name = 'SYSTEM'

注意INCREMENT_BY字段单位是blocks,即8KB

发现NEXT_EXTENT并不大,只有100M

 

4. 查报错索引NEXT_EXTENT size  

select d.owner,
       d.index_name,
       d.tablespace_name,
       d.next_extent / 1024 / 1024 next_extent_MB,
       d.pct_increase
  from dba_indexes d
 where d.index_name='xxx';

发现NEXT_EXTENT居然有26G....刚好超出了system表空间剩余空间。这么大主要是因为没设置固定大小而设了pctincrease 100。。。瑟瑟发抖

 

各种情况对应解决方法参考:

Troubleshooting Guide - 'Unable to Extend / Create' Errors (文档 ID 1025288.6)

Overview Of ORA-01654: Unable To Extend Index %s.%s By %s In Tablespace %s (文档 ID 146595.1)

举报

相关推荐

0 条评论