ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 一次当前联机日志文件损坏下的恢复

一次当前联机日志文件损坏下的恢复

原创 Linux操作系统 作者:skelly_huang 时间:2008-01-30 17:38:30 0 删除 编辑
昨天,一朋友说oracle 9i 数据库,在运行当中忽然断电。来电后,在数据库启动过程中,又忽然断电。电恢复正常后,数据库启动不了了。提示UNDO表空间恢复不成功。由于昨天晚上和一哥们生日,大家一起在外吃饭,晚上12点才到家。没有来得及远程 看一下。直到今天下午,才有时间看了看。
在做操作前,备份了所有的数据文件、在线日志文件、控制文件。
操作系统 为 win2000
数据库版本为:oracle 9201,运行在非归档模式下,没有进行过任何有效的备份。
连上SQLPLUS。
运行,recover database ;
提示控制文件比数据文件旧。
重建了一下控制文件.
select * from v$log;
发现redo01.log 的 status 为invalidate,并且为当前联机日志文件。日志文件损坏。
问题的原因是出在当前联机日志文件的损坏。在线日志文件中,每组都只有一个成员。
解决办法:
SQL> alter database backup controfile to trace;
到udmp 目录下,找到trc 文件后,在noamount下重新创建控制文件。
关闭数据库
SQL>create pfile from spfile;
修改参数文件,加入:
_allow_resetlogs_corruption=true
用文本参数文件启动数据库到mount状态下
SQL> recover database using backup controlfile;
在输入CANCEL后
SQL>alter database open resetlogs;
能够启动,启动后 ,把TEMP空间reuse。马上作了一次全库的exp ;
问题解决。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28620/viewspace-166468/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2007-12-27

  • 博文量
    4
  • 访问量
    10137