Oracle开发应用中报以ORA类型的9个错误汇总

来源:Oracle认证    发布时间:2012-11-12    Oracle认证视频    评论

    第四个:ORA-01628:max # of extents num reached for rollback segment num
    产生原因:这种错误通常为一个回滚段和一个表空间已经达到MAXEXTENTS参数设置的极限。要注意的是这个MAXEXTENTS不是该回滚段或表空间的硬件极限,硬件极限取决于数据库创建时在init.ora文件中指定的DB_BLOCK_SIZE参数的值。
    解决方法:使用SQL命令ALTER TABLESPACE…STORAGE(MAXEXTENTS XXXX)来增加 MAXEXTENTS,其中"XXXX"值必须大于错误信息中所指的数值,但不能大于LARGEST MAXEXTENT的值,如果已经达到了LARGEST MAXEXTENT VALUE,解决的办法就是重新创建较大的范围尺寸,使用带有选项COMPRESS=Y的Export工具导出表,如果表空间有可用空间,先给表做一个备份,用alter tablespace tablespace_name更改其名字,然后再装载表回数据库。
    查看其错误出现的地方,如果出现在回滚段或索引上,那么必须将其删除并重建,如果出现在临时表空间,修改临时表空间的存储字段,便可解决这个问题。
    一个报错例子如下:
    ORA-1628:max # extents 50 reached for rollback segment RBS_1
    第五个:ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?]
    产生原因:这种错误通常为Oracle的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。
    解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误。
    一个报错例子如下:
    ORA-00600: internal error code,
    arguments: [1237], [], [], [], [], [], [], []
    第六个:ORA-03113:end-of-file on communication channel
    产生原因:通讯不正常结束,从而导致通讯通道终止
    解决方法:
    1>.检查是否有服进程不正常死机,可从alert.log得知
    2>.检查sql*Net Driver是否连接到ORACLE可执行程序
    3>.检查服务器网络是否正常,如网络不通或不稳定等
    4>.检查同一个网上是否有两个同样名字的节点
    5>.检查同一个网上是否有重复的IP地址
    第七个:ORA-00942:table or view does not exist
    产生原因:这是由于装载的表或视图不存在,多半是CATEXP.SQL还没有运行,无法执行Export视图,如果CATEXP.SQL已经运行,则可能是版本错误。
    解决方法:因为Import和Export共享的一些视图是通过运行CATEXP.SQL来装载的(它们具有相同的视图),并不生成单独的CATEXP.SQL,因而造成视图与Export代码不同步,较难保持彼此之间的兼容,用户就必须建立自己的Export应用,从而避免ORA-00942的错误。
    上述错误均为我们在使用回滚段时比较常见的问题,ORA-01598指明当前使用的回滚段的状态为"not online",不能使用,将它改为"online"状态即可使用;ORA-01636指明当前回滚段已经为"online"状态,可以直接使用,不用再集合它。
    第八个:ORA-1636 signalled during: alter rollback segment rb00 online
    我们在做统计时还可能遇到下述问题:一个rollback segment的状态为"Needs Recovery"的现象,这是由于ORACLE回退一个事物表中的没有提交的事物时失败所造成的。通常原因为一个datafile或者tablespace是在offline的状态或者一个undo的目标被破坏或者rollback segment被破坏。解决的办法是将所有的tablespace和datafile都置为online状态,如果不能解决则做下面的工作:
    1>.在initsid.ora中加入event="10015 trace name context forever lever 10";
    2>.shutdown数据库然后重启;
    3>.在$ORACLE_HOME/rdbms/log下,找到startup时生成的trace file;
    4>.在trace文件中,找到下列信息"error recovery tx(#,#) object #";
    5>.根据object#(与sys.dba_objects表中的object_id相同)在sys.dba_objects表中查出该object的名字;
    6>.将该object drop掉;
    7>.在init.ora文件中将该rollback segment放回rollback_segments参数中,删除event;8>.shutdown数据库然后重启。此时"Needs Recovery"的问题应该是完全解决了,否则就是rollback segment被破坏了。
    第九个:ORA-01688:unable to extend table name.name partition NAME by NUM in tablespace NAME
    产生原因:指定的tablespace空间已经被占用满,无法扩展。
    解决方法:使用"ALTER TABLESPACE ADD DATAFILE"命令增加文件系统文件和原始分区,或者增加INITIAL的大小(如:alter tablespace CDRS101 default storage(next 500M pctincrease 1))应该能够解决,否则就是有人使用你的表空间上创建了一个比较大的数据文件导致你的表空间不够用。
    一个报错例子如下:
    ORA-1688: unable to extend table RMMCDR.LOCAL_CDR partition LOCAL_CDR101
    by 460800 in tablespace CDRS101花了不少时间来收集和整理Oracle数据库的Ora系统错误,到此本文基本上结束了,有可能还有其他的Ora错误还没有收集到本篇文章中,如果你有发现谢谢你告诉本网。

    考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

    相关推荐

    oracle中的rownum总结

    oracle维护常用语句

    数据库系统实现:数据库实现概论

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答