ITPub博客

首页 > IT基础架构 > 网络安全 > Redo log Corrupt 恢复

Redo log Corrupt 恢复

原创 网络安全 作者:myhuaer 时间:2006-05-30 11:34:44 0 删除 编辑
周五晚 工厂ITS 打电话,得知Oracle DB 不能启动。发现是redo log Corrupt 将解决步骤发上来大家看看。
案例: [XXX ENV] Redo log Corrupt 恢复
软件版本:
Hpunix 11.11
Oracle 9.2.0.6
现场人员:
省略。。。。
发生问题原因:
对DB 到处大量数据后,delete 一大table.
在Delete 过程中Shutdown abort db,后Startup db 报如下错误:
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 1 (当时没有记录下来)
ORA-00312: online log 2 thread 1: '/oracledata/picstest/redo02.log'
数据库无法打开。
解决方法:
0: 备份所有Datafile
Cp -rp /oracledata/picstest/* /oracledata/20050526bk/
(主要是防止修改错误可以恢复到修改之前)
1: 直接 Clear redo log 2
alter database clear logfile group 2
ORA-01624: log 2 needed for crash recovery of thread 1 ---错误
2:修改 Initpicstest.ora 参数。
alter database mount
create pfile from spfile;
修改pfile 中
_allow_resetlogs_corrupton = true
_corrupted_rollback_segments=true (可不需要)
_offline_rollback_segments=true(可不需要)
----网上很多人说只需要第一个参数就可以了
3: 重新用 pfile 启动数据库
startup pfile='/oracle/OraHome/dbs/initpicst.ora' mount
ORACLE instance started.
4: recover database
recover database until cancel;
Specify log: {=suggested | filename | AUTO | CANCEL}
cancel
ORA-01110: data file 1: '/oracledata/picstest/system01.dbf'
ORA-01112: media recovery not started
5: Open database
alter database open resetlogs
系统提示:
ORA-00600: internal error code, arguments:
并中断Oracle Session。
6: 使用新Session 连接Oracle,可以正常连接,数据库显示Open
7: Imp database data.
每次Imp完一个table 都会报ora-600 错误。
8: 新增redo log group
想利用数据库打开状态,上出原来有问题的redolog ,重新创建新的redo log.
可以正常 Add,但不能删除原来的 group 1,2,3 都会报错 ora-600 并使 session 断开。
9:由于一直有Ora-600产生,不能解决此问题,又将Data 从有问题的数据库中成功导出来,
决定重新create database,将Data 导入。
数据导入正常,Database 可用。
[@more@]

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

下一篇: Mintrans and Maxtrans
请登录后发表评论 登录
全部评论

注册时间:2016-09-11

  • 博文量
    211
  • 访问量
    634600