度量快速开发平台-专业、快速的软件定制快开平台

标题: Oracle常见ORA错误及解决办法2 [打印本页]

作者: 张兴康    时间: 2020-5-19 13:41
标题: Oracle常见ORA错误及解决办法2
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


作者: 张兴康    时间: 2020-5-19 13:42

作者: 万望    时间: 2020-5-19 18:57

作者: 万望    时间: 2020-5-19 19:00

作者: 万望    时间: 2020-5-19 19:00

作者: 万望    时间: 2020-5-19 19:03

作者: 万望    时间: 2020-5-19 19:04

作者: 万望    时间: 2020-5-19 19:04

作者: 万望    时间: 2020-5-19 19:05

作者: 万望    时间: 2020-5-19 19:05

作者: 万望    时间: 2020-5-19 19:06

作者: 万望    时间: 2020-5-19 19:06

作者: 张兴康    时间: 2020-5-20 16:37





欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2