Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Database/JDBC/SQL/JDO/Hibernate » Oracle  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:Oracle常见错误代码的分析与解决 [Re:九佰]
九佰



版主


发贴: 983
积分: 126
于 2003-08-01 12:33 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ORA-01578:Oracle data block corrupted(file # num,block # num)

  产生原因:当ORACLE访问一个数据块时,由于1、硬件的I/O错误;2、操作系统的I/O错误或缓冲问题;3、内存或paging问题;4、ORACLE试图访问一个未被格式化的系统块失败;5、数据文件部分溢出等上述几种情况的一种引起了逻辑坏块或者物理坏块,这时就会报ORA-01578的错误。

  解决方式:由于ORACLE只有在访问到有问题的数据文件时才会报错,所以报错的时间有可能会比实际出错的时间要晚,如果ORA-01578出错信息提示数据坏块指向的是用户自己的数据文件,则用以下方法来解决:

  如果通过下面的SQL语句查出的坏块出现有索引上,则只需重建索引即可

SQL>Select owner,segment_name,segment_type from dba_extents where file_id= and between block_id and block_id+blocks-1;

  (和分别是ORA-01578报出的坏块出现的文件号和块号)

  如果坏块出现在表上,先用以下语句分析是否为永久性坏块(建议多执行一两次,有助于鉴别数据坏块是永久性的(硬盘上的物理坏块)还是随机性的(内存或硬件错误引起)): SQL>Analyze table validate structure cascade;

  执行该命令后,可能会出现以下的结果:

  ORA-01578:与原先错误信息有相同的参数,为永久性的物理或逻辑坏块;与原先错误信息有不同的参数,可能与内存,page space和I/O设备有关。

  如果用户有此表的最新备份,那么最好是用此备份来恢复此表,或者使用event 10231来取出坏块以外的数据:

  <1>.先关闭数据库

  <2>.编辑init.ora文件,加入:

event=”10231 trace name context forever,level 10”

  <3>.startup restrict

  <4>.创建一个临时表:SQL>create table errortemp as select * from error;(error是坏表的表名)

  <5>.把event从init.ora文件中删掉并重起数据库

  <6>.rename坏表,把临时表rename成坏表的表名

  <7>.创建表上的INDEX等
如果ORA-01578出错信息提示数据坏块指向的是数据字典或者是回滚段的话,你应该立即与ORACLE公司联系,共同商量一个好的解决办法。

  这里所讲的解决方法只是比较常见的一种,一些更为具体的解决办法可以查看一下ORACLE的故障解决手册,那里面有浞及使用ROWID方法来取出坏块以外的数据的方法,这里就不介绍了。

  相应的英文如下:

Cause:The given data block was corrupted,probably due to program errors

Action:Try to restore the segment containing the given data block,This may involve dropping the segment and recreating it,If there is a trace file,report the messages recorded in it to customer support.




http://www.teamlet.org

海纳百川,有容乃大
壁立千仞,无欲则刚
智者不惑,勇者无惧
止戈为武,仁者无敌

话题树型展开
人气 标题 作者 字数 发贴时间
24052 Oracle常见错误代码的分析与解决 九佰 1057 2003-08-01 12:30
18611 Re:Oracle常见错误代码的分析与解决 九佰 1230 2003-08-01 12:32
18471 Re:Oracle常见错误代码的分析与解决 九佰 1591 2003-08-01 12:33
18371 Re:Oracle常见错误代码的分析与解决 九佰 1085 2003-08-01 12:33
18602 Re:Oracle常见错误代码的分析与解决 九佰 2042 2003-08-01 12:34
18770 Re:Oracle常见错误代码的分析与解决 九佰 1214 2003-08-01 12:35

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923