对于oracle的一些常见错误,整理汇总起来,以备后查,ORA-01654错误的两个解决方法。
数据库突然报:ORA-01654: unable to extend index BO.INDEX_indexname by 311072 in tablespace错误。
上网查原因,发现解决之道只有一个,就是增加tablespace的大小。查询oracle数据库表空间的大小,已使用空间,剩余空间。因我的database的tablespace已经足够大了,最后发现不是tablespace不足,而是参数错误.现归纳解决此问题的两个方法:
1、当出现类似错误时,首先检查tablespace的空间是否足够大,如果不够大,说明tablespace的空间不够扩展了,这时候需要将tablespace的datafile的size变大,方法很简单我就不讲了,或增加新的datafile到此tablespace中,使用alter tablespace mytablespace add datafile 'XXX' size xxxx就可以了。
2、这就是我这遇到的问题,我的datafile的size为2000m,而我的index的next extent为2G,pct increase为50,这样一来下一个要扩展的extent为3G,而我的datafile的Size为2G,故无发找到连续3G的空间,当然会出错。问题找到了,解决当然很简单,修改next extent 为128k,pct increase为0,问题解决。
附:
1、增加datafile
ALTER TABLESPACE HRERPDATA ADD DATAFILE 'file name' SIZE 100M;
2、增加属于该tablsapce的datafile的大小
ALTER DATABASE DATAFILE 'file name' RESIZE <1000000>M;
3、扩展datafile
ALTER TABLESPACE XXX ADD DATAFILE XXX AUTOEXTEND ON NEXT 500M;
--转自