ORACLE常见错误代码的分析与解决(一)
能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希望能够帮助你找到一个
合理解决这些错误的方法,同时也希望你能够提出你的不同看法。毕竟作为一种交流的手段,个人意见难免过于偏颇,而
且也必定存在着不足,出错之处在所难免。写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步。
ORA-01650:unabletoextendrollbacksegmentNAMEbyNUMintablespaceNAME
产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。当用户
在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述
的错误。
解决方式:使用“ALTERTABLESPACEtablespace_nameADDDATAFILEfilenameSIZEsize_of_file”命令向指定的
数据增加表空间,根据具体的情况可以增加一个或多个表空间。当然这与还与你主机上的裸盘设备有关,如果你主机的裸
盘设备已经没有多余的使用空间,建议你不要轻意的增加回滚段表空间的大小,可使用下列的语句先查询一下剩余的
tablespace空间有多少:
Selectuser_name,sql_textfromV$open_cursorwhereuser_name="
如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。你也可以用以下语句
来检测一下rollbacksegment的竞争状况:
Selectclass,countfromV$waitstatwherecalssin(‘systemundoheader","systemundoblock","undo
header","undoblock");和
Selectsum(value)fromV$sysstatwherenamein(‘db_block_gets","consistentsgets");
如果任何一个classincount/sum(value)大于1%,就应该考虑增加rollbacksegment。
相应的英文如下:
Cause:Failedtoallocateextentfromtherollbacksegmentintablespace
Action:UsetheALTERTABLESPACEADDDATAFILEstatementtoaddoneormorefilestothespecified
tablespace.
ORA-01652:unabletoextendtempsegmentbynumintablespacename
产生原因:ORACLE临时段表空间不足,因为ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分配不连
续就会出现上述的现象。
解决方法:我们知道由于ORACLE将表空间作为逻辑结构-单元,而表空间的物理结构是数据文件,数据文件在磁盘上物
理地创建,表空间的所有对象也存在于磁盘上,为了给表空间增加空间,就必须增加数据文件。先查看一下指定表空间的
可用空间,使用视图SYS.DBA_FREE_SPACE,视图中每条记录代表可用空间的碎片大小:
SQL>Selectfile_id,block_id,blocks,bytesfromsys.dba_free_spacewheretablespace_name="
返回的信息可初步确定可用空间的最大块,看一下它是否小于错误信息中提到的尺寸,再查看一下缺省的表空间参
数:
SQL>SELECTINITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,PCT_INCREASEFROMSYS.DBA_TABLESPACESWHERE
TABLESPACE_NAME=name;
通过下面的SQL命令修改临时段表空间的缺省存储值:
SQL>ALTERTABLESPACEnameDEFAULTSTORAGE(INITIALXXXNEXTYYY);
适当增大缺省值的大小有可能解决出现的错误问题,也可以通过修改用户的临时表空间大小来解决这个问题:
SQL>ALTERUSERusernameTEMPORARYTABLESPACEnew_tablespace_name;
使用ALTERTABLESPACE命令,一但完成,所增加的空间就可使用,无需退出数据库或使表空间脱机,但要注意,一旦添加
了数据文件,就不能再删除它,若要删除,就要删除表空间。
一个报错例子如下:
ORA-1652:unabletoextendtempsegmentby207381intablespaceTEMPSPACE
相应的英文如下:
Cause:Failedtoallocateextentfortempsegmentintablespace
Action:UsetheALTERTABLESPACEADDDATAFILEstatementtoaddoneormorefilestothespecified
tablespaceorcreatetheobjectinanothertablespace.
相关文章
- Oracle 自动分析:实现数据精确分析(oracle自动分析)
- Oracle数据库告警日志分析与处理(oracle告警日志)
- 解决Oracle EM无法启动问题(oracle打不开em)
- 在windows 中无效Oracle Preferences Invalid on Windows Platform(oracle首选项)
- Oracle导出序列的步骤分析(oracle导出序列)
- Oracle数据库连接配置指南(oracle数据连接配置)
- 分析Oracle数据库中触发器类型的应用(oracle触发器类型)
- 使用Oracle触发器实现数据库自动管理(oracle触发器类型)
- 创建Oracle数据库:一步一步迈向成功(oracle数据库新建)
- 研究Oracle触发器类型的多种应用(oracle触发器类型)
- 命令行连接Oracle库:一步到位(命令行连接oracle)
- Oracle默认表空间的优势及使用方法(oracle默认的表空间)
- 解决Oracle中删除列的复杂性(oracle删除列数据库)
- Oracle 数据库归档模式开启: 如何优化你的数据备份策略(oracle归档模式开启)
- Oracle中有效解决存储图片的办法(oracle中存储图片)
- 解决Oracle中表类型修改问题(oracle修改表类型)
- Oracle 数据库快速建立分区案例分析(oracle建立分区)
- Oracle弹性域:解决企业数据安全隐患(oracle弹性域)
- Oracle数据库解决01019异常(oracle-01019)
- Oracle数据快捷入表 助力你的表格管理(oracle入表格工具)
- Oracle写入文件函数按照步骤轻松解决(oracle写入文件函数)
- 解决Oracle 12505错误获得可信服务名称(oracle-12505)
- Oracle交叉表查询利用它实现分析更便捷(oracle 交叉表查询)
- 解决Oracle中乘法时忽略小数的方法(oracle乘法忽略小数)
- 优化Oracle性能利用分析函数进行改善(oracle优化分析函数)
- 解决Oracle用户被锁定问题(oracle中用户被锁定)
- 解决Oracle中文表名乱码问题(oracle中文表名乱码)
- Oracle数据库技术之左关联查询分析(oracle中左关联查询)
- 探索Oracle数据库中的函数功能(oracle 中包含函数)
- 解决Oracle中不等于运算符的使用问题(oracle中不等于使用)
- 解决Oracle表中空白数据不显示问题(oracle不显示空数据)
- Oracle NTP服务构建高可靠性时间序列环境(oracle ntp服务)
- Oracle数据库错误无法解决00101错误代码(oracle 00101)