ORACLE常见错误代码的分析与解决
1.ORA-01650:unabletoextendrollbacksegmentNAMEbyNUMintablespaceNAME
产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。
当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,
就会出现上述的错误。
解决方式:使用
命令向指定的数据增加表空间,根据具体的情况可以增加一个或多个表空间。当然这与还与你主机上的裸盘设备有
关,如果你主机的裸盘设备已经没有多余的使用空间,建议你不要轻意的增加回滚段表空间的大小,可使用下列的
语句先查询一下剩余的tablespace空间有多少:
如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。你也可以用以下语
句来检测一下rollbacksegment的竞争状况:
和
如果任何一个classincount/sum(value)大于1%,就应该考虑增加rollbacksegment。
相应的英文如下:
2.ORA-01652:unabletoextendtempsegmentbynumintablespacename
产生原因:ORACLE临时段表空间不足,因为ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分
配不连续就会出现上述的现象。
解决方法:我们知道由于ORACLE将表空间作为逻辑结构-单元,而表空间的物理结构是数据文件,数据文件在磁盘
上物理地创建,表空间的所有对象也存在于磁盘上,为了给表空间增加空间,就必须增加数据文件。先查看一下指
定表空间的可用空间,使用视图SYS.DBA_FREE_SPACE,视图中每条记录代表可用空间的碎片大小:
Select class,count from V$waitstat where calss in(‘system undo header’,’system undo block’,’un
do header’,’undo block’);
1
Cause:Failed to allocate extent from the rollback segment in tablespace
Action:Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the specifi
ed tablespace.
1