li
  当前位置:主页 > 性能优化 > 文章内容
li
一次坏块的处理过程
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2006-10-11   阅读:43  

turbolinux +oralce9201

单机,

非归档模式,

没有任何备份

接到用户那的报错信息,说是联机重做日志损坏了

 

己经有人处理了相当长的时间,需要我来接手帮着处理一下,先查看alert日志,发现确实如用户所说联机重做日志坏了,本来是可以通过sql来查看的,但现在因为此数据库己经被处理相当长时间了,也看不到有用的信息了。

 

IXDBA.NET技术社区

首先在初使化参数文件中加隐含参数 _allow_resetlogs_corruption=TRUE

 

启动后,报错如下:

Sat Apr 16 10:47:58 2005 Errors in file /u01/app/oracle/admin/pp/udump/gdykt_ora_17594.trc:

ORA-00600: internal error code, arguments: [2662], [0], [134454992], [0], [134507108], [8388617], [], []

Sat Apr 16 10:47:58 2005

Error 600 happened during db open, shutting down database

USER: terminating instance due to error 600

Instance terminated by USER, pid = 17594

ORA-1092 signalled during: alter database open resetlogs...

Sat Apr 16 10:52:59 2005

USER: terminating instance due to error 1092

Instance terminated by USER, pid = 17594

 

检查metalink,发现2662说明当前数据库的数据块的SCN早于当前的SCN,主要是和存储在UGA变量中的dependent SCN进行比较,如果当前的SCN小于它,数据库就会产生这个ORA-600 [2662]的错误了。所引起的原因现在应是和我们设置隐含参数有关,处理如下:

 

alter session set events 'IMMEDIATE trace name ADJUST_SCN level 1';

 

再尝试重新启动数据库,出现了新问题,3113,怀疑这是和系统内核参数有关,经检查确认,修改了内核参数,3113错误消失。

 

再次重启数据库,出现了如下的问题:

Tue Apr 19 12:06:22 2005

Errors in file /u01/app/oracle/admin/ppp/bdump/ppp_smon_1519.trc:

ORA-00604: error occurred at recursive SQL level 1

ORA-00607: Internal error occurred while making a change to a data block

ORA-00600: internal error code, arguments: [4193], [6533], [6976], [], [], [], [], []

 

检查metalink,确认引起此现象的原因是联机重做日志和回滚段不一致,所以下面的问题主要就是解决回滚段的问题了,

 

设置隐含参数 _corrupted_rollback_segments ,_offline_rollback_segments

 

后错误依然;突然想起,回滚段是自动管理的,因此先处理一下,把它们改成手工管理,并mount数据库,alter 回滚段表空间 offline drop;打开数据库。成功打开数据库。

 

再对库进行全库导出备份,稍后删除数据库,并重建之,导入数据。

 

教训:

生产数据库一定要有备份的,即使没有备份,在做恢复操作之前,也最好有个错误点的备份,我们在实施恢复时,即使不能恢复成功,但也不能把事情变得更坏,这个数据库己经被用户恢复了一周左右的时间了,有时会使得备份变成不可能。在协助同事处理时,自己一直也在想如果这样不能恢复该用哪种办法来恢复数据,还好解决了。




  上一篇: oracle多归档路径的设置   下一篇: 如何处理 Ora-600 4193 错误
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·oracle多归档路径的设置
·redo文件为active状态的理解
·Linux系统中无法启动rman问题
·监听器连接常见的问题及其解决方...
·关于检查点的一点具体应用讨论
·关于数据库open的深入探究
·如何处理 Ora-600 4193 错误
·回滚段机制深入研究
·损坏数据文件的恢复方法
·损坏控制文件的恢复方法
·丢失redo文件,如何恢复?
·JDBC连接oracle RAC数据库配置一...
·ORA-12162: TNS:net service nam...
·ORA-12709错误一例
·ORA-07445错误分析总结
·数据库物理分布设计
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接