Hey!! Sky!

Nov 02, 2005

[案例]ORA-01654错误的解决

错误提示:ORA-01654: unable to extend index NWMGR.IDX_FCSTDRAFT_TMP by 128 in tablespace NTWKSDATA
ORA-01654: 索引NWMGR.IDX_FCSTDRAFT_TMP无法通过128(在表空间NTWKSDATA中)扩展


错误原因:表空间空间不够,或者索引表空间不足


解决方法:a.增加相应表空间的数据文件
                  b.如果是索引表空间不足,可rebuild重建索引.


1、增加datafile
ALTER TABLESPACE NTWKSDATA ADD DATAFILE 'file name' SIZE 100M
2、增加属于该tablsapce的datafile的大小
ALTER DATABASE DATAFILE 'file name' RESIZE <1000000>M
3、也可以减少next extent 或者pct_increase的值
4、其它的可以减少碎片,或者整理COALESCE这个tablespace。

用前两个方法的一个吧


Comments

1.ORA-01654表空间不足如看归档跟踪日志(gy_sjgd.trace.xxxxx:)ORA-02055: distributed update operation failed; rollback requiredORA-01654: unable to extend index WEBDB.XXXX by 260 in tablespace YZ2_ARCHIVE2ORA-02063: preceding line from YZ2ORA-06512: at "ZXJ.SJGD", line xxxORA-06512: at line 1处理方法:a.增加相应表空间的数据文件b.如果是索引表空间不足,可rebuild重建索引.
2.ORA-02042如看归档跟踪日志(gy_sjgd.trace.xxxxx)ORA-02042: too many distributed transactionsORA-02063: preceding line from YZ2ORA-06512: at "ZXJ.SJGD", line 44ORA-06512: at line 1处理方法:1.用vi修改yz的初始文件inityz.ora,把transactions的值加大,如改为300.要生效a.重启生产库yz,b.重启weblogic或者直接在weblogic的console(控制台)做强制垃圾回收(Force garbage collection)
 
3.ORA-01562,回滚段表空间不足“数据归档失败 ORA-01562:failed to extend rollback segment number 3ORA-01650:unable to extend rollback segment RBS03 by 256 in tablespace YZ2_RBS01ORA-02063:preceding 2 lines from YZ2ORA-06512:at "ZXJ.SJGD",line 44ORA-06512:at line 1调用存储过程失败。解决办法:把历史库的表空间yz2_rbs1扩大即可
回滚段的问题我们这儿也出现了,通过alter rollback segment rbsxx shrink和alter rollback segment offine,then online方式,都不能解决;我们是这样做的:select s.sid,s.serial#,s.username,s.status,x.addr,r.usn,r.statusfrom v$session s,v$transaction x,v$rollstat rwhere r.status='FULL' and x.xidusn=r.usn and s.taddr=x.addr查出所有挂起的sid,serial#,然后alter system kill 'sid,serial#'解决!

如果表空间足够的话,就是磁盘空间不足了。

Send A Comment