ORACLE常见错误代码的分析与解决(一)

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

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='<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。

相应的英文如下:

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,视图中每条记录代表可用空间的碎片大小:

SQL>Select file_id,block_id,blocks,bytes from sys.dba_free_space where tablespace_name='<users>';

  返回的信息可初步确定可用空间的最大块,看一下它是否小于错误信息中提到的尺寸,再查看一下缺省的表空间参数:

SQL>SELECT INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,PCT_INCREASE FROM SYS.DBA_TABLESPACES WHERE TABLESPACE_NAME=name;

通过下面的SQL命令修改临时段表空间的缺省存储值:

SQL>ALTER TABLESPACE name DEFAULT STORAGE (INITIAL XXX NEXT YYY);

适当增大缺省值的大小有可能解决出现的错误问题,也可以通过修改用户的临时表空间大小来解决这个问题:

SQL>ALTER USER username TEMPORARY TABLESPACE new_tablespace_name;

使用ALTER TABLESPACE命令,一但完成,所增加的空间就可使用,无需退出数据库或使表空间脱机,但要注意,一旦添加了数据文件,就不能再删除它,若要删除,就要删除表空间。

一个报错例子如下:

ORA-1652:unable to extend temp segment by 207381 in tablespace TEMPSPACE

相应的英文如下:

Cause: Failed to allocate extent for temp segment in tablespace

Action:Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the specified tablespace or create the object in another tablespace.

ORACLE常见错误代码的分析与解决

在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希...
  • chensheng913
  • chensheng913
  • 2005年04月18日 19:16
  • 6522

Oracle常见错误代码的分析与解决

在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希...
  • meteorlWJ
  • meteorlWJ
  • 2008年05月11日 21:36
  • 584

Oracle常见错误代码的分析与解决

Oracle常见错误代码的分析与解决ORA-01650:unable to extend rollback segment NAME by NUM intablespace NAME  产生原因:上述...
  • lhfeng
  • lhfeng
  • 2008年01月15日 11:18
  • 1787

oracle常见错误及操作

1、ORA-12519:TNS:没有找到适用的服务处理程序 最近oracle10g频繁报出ORA-12519的错,查看数据库状态基本判定为oracle进程数不够导致报错。 根据Oracle文档,SES...
  • lcfeng1982
  • lcfeng1982
  • 2014年03月05日 16:58
  • 2565

ORACLE常见错误代码的分析与解决(二)

ORACLE常见错误代码的分析与解决(二) ORA-01578:Oracle data block corrupted(file # num,block # num) 产生原因:当ORACLE访问一个...
  • FlyHope2005
  • FlyHope2005
  • 2004年09月16日 13:13
  • 1201

ORACLE常见错误代码的分析与解决(三)

ORACLE常见错误代码的分析与解决(三) ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 产生原因:这种错误通常为ORAC...
  • FlyHope2005
  • FlyHope2005
  • 2004年09月16日 13:14
  • 1347

ORACLE常见错误代码的分析与解决之一

  在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析...
  • anging
  • anging
  • 2010年03月23日 22:01
  • 247

ORACLE常见错误代码的分析与解决(二)

ORACLE常见错误代码的分析与解决(二) 文章源自于  世纪易网  ORA-01578:Oracle data block corrupted(file # num,block # num)  产生...
  • iwo99
  • iwo99
  • 2004年10月10日 09:37
  • 1082

Oracle常见错误代码及解决

ORA-00900:invalid SQL statement 解释: 重复插入了已经存在的数据 ORA-00955:name is already used by an existing obj...
  • yuhezhangyanru
  • yuhezhangyanru
  • 2012年09月25日 15:31
  • 98

java WEB常见的错误代码

1、1xx-信息提示:这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。     100-继续。     101-切换协议。 2、2xx-成功:这类状态代码表...
  • chuck_kui
  • chuck_kui
  • 2017年02月12日 07:56
  • 990
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE常见错误代码的分析与解决(一)
举报原因:
原因补充:

(最多只允许输入30个字)