日期:2013-03-25  浏览次数:20635 次

在使用Oracle的过程中,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎样去处理产生的这些错误,本人就使用中出现比较频繁的错误代码逐一做出分析,希望能够协助你找到一个合理处理这些错误的方法,同时也希望你能够提出你的不同看法。毕竟作为一种交流的手段,团体意见难免过于偏颇,而且也必定存在着不足,出错之处在所难免。写这篇文章的目的就是想通过互相之间的交流共同促进,共同进步。

错误1:

ORA-01650:unable to extend rollback segment NAME by NUM intablespace NAME

产生缘由:上述ORACLE错误为回滚段表空间不足惹起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述的错误。

  

处理方式:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的数据添加表空间,依据具体的情况可以添加一个或多个表空间。当然这与还与你主机上的裸盘设备有关,如果你主机的裸盘设备曾经没有多余的使用空间,建议你不要轻意的添加回滚段表空间的大小,可使用下列的语句先查询一下剩余的tablespace空间有多少:

Select user_name,sql_text from V$open_cursor where user_name=’’;

如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。你也可以用以下语句来检测一下rollback segment的竞争情况:

Select class,count from V$waitstat where calss in (‘system undo header’,’system undo block’,’undo header’,’undo block’);

或者利用下一条语句:

Select sum(value) from V$sysstat where name in (‘db_block_gets’,’consistents gets’);

 

如果任何一个class in count/sum(value)大于1%,就应该考虑添加rollback segment。

错误2:

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 specified tablespace.    ORA-01652:unable to extend temp segment by num in tablespace name 

产生缘由:ORACLE临时段表空间不足,由于ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分配不连续就会出现上述的景象。

  

处理方法:我们知道由于ORACLE将表空间作为逻辑结构-单元,而表空间的物理结构是数据文件,数据文件在磁盘上物理地创建,表空间的所有对象也存在于磁盘上,为了给表空间添加空间,就必须添加数据文件。先查看一下指定表空间的可用空间,使用视图SYS.DBA_FREE_SPACE,视图中每条记录代表可用空间的碎片大小:

友情链接: 爱易网 云虚拟主机技术 云服务器技术 程序设计技术 开发网站 APP开发教程
Copyright © 2013-2024 爱易网页 当前在线:986人  网站在21时28分13秒内访问总人数:244939人 当前 20.97%  粤ICP备18100884号-2