oracle常见错误代码的分析与解决
在使用Oracle的过程中,我们经常会遇到一些Oracle错误,对于初学者来说,这些错误可能是模糊的,但不知道如何处理可能从这些错误中,我用的比较常见的错误代码来做一个分析,希望能够帮助你找到这些错误的方式合理的解决方案,同时也希望你能提出不同的意见你。毕竟,作为一种通信手段,个人意见难免会失之偏颇,一定有缺点和错误是不可避免的。写这篇文章的目的是促进和共同进步,通过彼此间的沟通。
原因:上面提到的Oracle错误被回滚表空间不足引起的,这也是Oracle数据管理员最常见的Oracle错误信息。当用户做一个非常大的数据操作,导致现有的回滚段的缺乏,以及分配的回滚段表空间已满,它不能被重新配置。
解决的办法是通过使用ALTER TABLESPACE tablespace_name添加数据文件大小命令指定的数据添加表空间,并添加一个或多个根据具体情况表。当然,这也是在光盘设备到你的主机,如果主机的裸盘装置已经没有多余的空间,建议你不要轻易增加回滚段的大小,可以使用以下语句来检查剩余表空间的空间有多大:
如果多余空间很大,可以在表空间适当添加一个大回滚段,避免上述错误:
如果计数(值)大于1%的类,则应考虑添加回滚段。
相应的英语如下:
原因是:Oracle的临时空间不够,因为Oracle总是试图分配连续的空间。一旦分配空间不足或分布不均,就会出现上述现象。
解决方案:我们知道,甲骨文将表空间的逻辑结构和物理结构单元,表空间的数据文件,在物理磁盘上创建的数据文件,在磁盘中也存在的所有对象的表空间,以增加表空间的空间,我们必须增加数据文件。看在指定表空间的可用空间,使用视图sys.dba_free_space,和视图中的每个记录代表在可用空间碎片的大小:
返回的信息可以初步确定可用空间的最大块,看看它是否小于错误信息中提到的大小,并查看默认的表空间参数。
临时段表空间的默认存储值由下面的SQL命令修改:
{分页}
通过增加默认值的大小,或者通过修改用户的临时表空间的大小来解决这个问题,是可以解决这个问题的。
使用表空间命令,一旦完成,可以使用额外的空间,不需要退出数据库或使表空间脱机,但我们应该注意,一旦添加了数据文件,就不能再次删除它。如果要删除,我们需要删除表空间。
一个错误的例子如下:
相应的英语如下:
原因:当Oracle访问一个数据块,自1以来,我的硬件I/O错误;2,我 / O操作系统错误或缓冲区的问题;3、内存或页面的问题;4,甲骨文试图访问一个系统没有格式化块失效;5部分数据文件,如溢出的几种情况引起的逻辑或物理坏块坏块,然后将ora-01578错误报告。
解决方案:因为Oracle只在数据文件访问错误时有问题,所以时间的误差有可能比实际的错误以后,如果ora-01578数据点到用户自己的数据文件坏块的错误信息,使用下面的方法来解决:
如果下列SQL语句标识的坏块出现在索引上,则只能重建索引。
(和文件的数量和ora-01578提出的,坏块数量分别)
如果一个坏块出现在表上,我们首先使用下面的句子来分析它是否是一个永久的坏块。建议更频繁地执行一两次,这有助于识别坏数据块,这些数据块是永久的(硬盘上的物理块不好)或随机(内存或硬件错误)。
执行此命令后,可能会出现以下结果:
ora-01578:参数作为原始错误信息是永久性的物理或逻辑坏块相同。与原始错误信息有不同的参数,这可能与内存、页面空间和I/O设备有关。
如果用户拥有表的最新备份,最好使用此备份来恢复表,或者使用事件10231除去坏块以外的数据。
首先关闭数据库
编辑init.ora文件,添加:
启动限制。
创建一个临时表:SQL >创建表errortemp为SELECT * FROM误差;(误差是一个坏的表的表名)
从init.ora文件删除事件和数据库附加到数据库
重命名坏表,将临时表的表名重命名为坏表
在表上创建索引,等等。
{分页}
如果ora-01578错误信息表明,糟糕的数据是指数据字典或回滚段,你应该立即联系Oracle公司讨论一个好的解决方案。
这里的解决方案是一种常见的手法,具体的解决方案,可以检查Oracle故障排除,有超过使用ROWID方法消除坏块的数据外,在这里就不介绍了。
相应的英语如下:
原因:这种错误通常是一个回滚段表空间,并达到了maxextents参数设置的限制。应该指出的是,这maxextents不是回滚段表空间或硬件限制。硬件的限制取决于值在init.ora文件中指定的db_block_size参数在数据库创建时。
解决方案:使用SQL命令ALTER TABLESPACE…存储(maxextents XXXX)增加maxextents,XXXX值必须大于数值的错误信息,但不大于最大的maxextent的价值,如果maxextent已达到最大值,解决方案是创建一个大范围的大小,与选项压缩= Y导出工具导出表,如果表空间的可用空间,先做一个备份的名称变更与修改表空间tablespace_name,然后装到数据库表。
要查看错误发生在哪里,如果出现在回滚段或索引上,则必须删除并重建它。如果出现在临时表空间中,修改临时表空间中的存储字段可以解决这个问题。
一个错误的例子如下:
相应的英语如下:
{分页}
原因:这种错误通常是Oracle的一个内部错误,这是唯一有用的开源软件和oracle.ora-600错误的发展往往伴随状态转储文件(跟踪系统和进程的状态),系统状态存储将包含当前对象Oracle RDBMS对进程状态转储信息显示对象的特殊过程中举行,当一个过程,一个虚假的,往往是因为从它的一些信息拥有一块,如果我们知道错误的过程保持块,很容易找到问题的根源。
解决方法:一般来说,我们是无法解决的,只有从提高系统本身的方面来解决内部问题,如增加硬件设备,系统的调节性能,有机磷农药的使用(当然行动在某种意义上是不是一个好的解决方案),ora-600错误第一变量的使用在代码标记错误的位置(在代码的每一部分的第一个变量是不同的)。它显示第二到第五个变量的附加信息,并告诉OSS代码是错误的。
一个错误的例子如下:
下一页{ { 1 } } 2 }下的对应Oracle教程是对Oracle常见错误代码的分析和解决:
超时(超时)
文件损坏(文件太旧)
内存中的数据检查失败(内存检索失败)
硬件、内存或I/O错误(硬件、内存或磁盘错误)
错误恢复的文件(错误的重建文件)
ora-03113:端通信通道上的文件
原因:通信通常没有完成,导致通信信道的终止。
解决方案:1 >。检查是否有以过程异常的过程,它可以从alert.log
2 >。检查SQL * NET驱动程序是否连接到Oracle可执行程序
3 >。检查服务器网络是否正常,如网络故障或不稳定等。
4 >。检查同一网络上是否有两个同名的节点。
5 >。检查同一网络上是否有重复的IP地址。
相应的英语如下:
{分页}
原因是表或视图不存在。他们中的大多数都是catexp.sql,这还未运行,无法执行出口观。如果CATEXP.SQL正在运行,它可能是一个版本错误。
解决方法:因为有些观点进出口份额是通过运行catexp.sql加载(它们有相同的看法),不产生独立的catexp.sql,导致视图和出口代码不同步,难以维持彼此之间的兼容性,用户必须建立自己的出口申请,以免ora-00942错误。
相应的英语如下:
错误在美国使用回滚段使用的问题ora-01598没有指定回滚段目前使用的状态不在线的时候是比较常见的,它改变了网络可以用来指定当前状态;ora-01636回滚段为网络,可以直接使用,不要把它。
当我们在做统计,我们也可能会遇到以下问题:回滚段的状态需要恢复,这是由于Oracle的故障恢复的东西不在表格提交。通常的原因是数据文件或表空间脱机或在一个被破坏或撤消回滚段是摧毁目标的状态。解决的办法是把所有的表空间和数据文件的在线状态,并做以下的如果你不能解决它:
1 >。添加事件= 10015道意杠杆10初始化参数;
2 >关闭数据库然后重新启动;
3 >,下oracle_home美元/数据库/日志,发现跟踪文件时产生的启动;
4 >。在跟踪文件中,发现以下错误恢复发送信息(#,#)对象#;
5 >。发现基于对象#在sys.dba_objects表对象的名称(如在sys.dba_objects表object_id相同)。
6 >。下降对象下降;
7 >。把回滚段在rollback_segments参数在init.ora文件,删除事件;8 >。关闭数据库,然后重新启动。在这一点上,需要恢复的问题要彻底解决,否则回滚段被破坏了。
原因:指定的表空间已被占用,无法扩展。
解决方案:使用ALTER TABLESPACE添加文件添加文件系统文件和原始分区,或增加初始大小(如表cdrs101默认存储:改变(下500m pctincrease 1))应该能解决,否则你的表空间使用创建一个数据文件比较大导致餐桌上没有足够的空间。
一个错误报告如下:ora-1688:无法扩展分区表rmmcdr.local_cdr local_cdr101 460800表cdrs101
相应的英语如下:
上一页
{ 1 } { 2 }的最后一页