服务器上突然断电后,oracle8i数据库无法启动,用svrmgrl进去管理后,过程如下:
>connect internal/oracle
>startup
ora-00314: log 2 of thread 1, expected sequenec# 22199 doesn't match 22268
ora-00312: online log 2 thread 1: c:\oracle\oradata\orcl\redo02.log'
>
导致数据库无法正常启动,高手帮忙
---------------------------------------------------------------
先mount数据库,然后再目录下建同名文件redo01.log、redo02.log、redo03.log
然后执行alter databse clear logfile group n
对于current的group,执行alter databse clear unarchived logfile group n
然后,再open,就ok了
---------------------------------------------------------------
'/users/oracle/oracle8/oradata/auth/system01.dbf'
需要恢复,可以系统数据文件啊,很是还好办。
有备份没有,没有备份我先替你哀悼!
---------------------------------------------------------------
如果仅仅是联机日志坏了, luckysxn方法就可以。
但是你的系统数据文件还需要媒体恢复,没有备份是不可能恢复的。
如果是别的数据文件,倒还可以删除掉,这个不能删啊。
没有好办法.
---------------------------------------------------------------
如你是归档的情况下,那可容易多了,如果不是可以采用以下的办法。
1、可以先设法把数据库起来,然后把数据导出来,然后重建库,因你的system也在报错。
2、在init
1<sid>.ora 中加入
2_allow_resetlogs_corruption=true
3偿试起动数据库,如报错,可以做如下修定:
4a、把init<sid>.ora 中的rollback_segments参数注释掉,偿试起库,如仍不能打开库,则转入b.
5b、加入_corrupted_rollback_segments=(rbs01,rbs02,..)
6我相信一定可以打开库了。
73、把数据导出来,重建库,数据导回。
8
9\---------------------------------------------------------------
10
11这个办法是恢复在日志文件出错而且没有归档日志时的最佳方法,但是重建数据库累呀!通宵不睡吧!
12\---------------------------------------------------------------
13
14根据楼上的步骤后
15alter database open resetlogs
16\---------------------------------------------------------------
17
18我看还是去找oracle的技术支持吧
19\---------------------------------------------------------------
20
21作好的办法就是让你们知道备份的重要性与DBA的重要性。
22再次哀悼
23\---------------------------------------------------------------
24
25按我的办法来吧,加入 _allow_resetlogs_corruption=true后就可以使用resetlog操作了。
26也可以请求Oracle的技术支持吗!
27
28\---------------------------------------------------------------
29
30对于联机日志错误
31也不用你们那么麻烦
32connect internal
33startup mount
34recover database until cancel ;
35选择CANCEL
36alter database open resetlogs ;
37alter database open ;
38我试了无数次都可以。
39
40\---------------------------------------------------------------
41
42看人家贴的吧,兄弟:
43服务器上突然断电后,oracle8i数据库无法启动,用svrmgrl进去管理后,过程如下:
44>connect internal/oracle
45>startup
46ora-00314: log 2 of thread 1, expected sequenec# 22199 doesn't match 22268
47ora-00312: online log 2 thread 1: c:\oracle\oradata\orcl\redo02.log'
48
49重做日志出错,没有提到系统表空间,而且人家用了上面的方法后,也没有成功啊!
50我现在还不敢乱讲,毕竟人家没有讲清楚具体情况,比如数据库是否处于归档模式?如果处于非归档模式,那就和我的情形一样,并非系统表空间问题,而是由于重做日志redo02.log发生介质错误,无法恢复,所以才导致数据库启动时,提示系统表空间需要恢复.这一点也和我遇到的报错一致.
51
52我建议你做做实验,在非归档模式下强行删除重做日志,然后再做恢复.
53
54还有一点,我建议恢复的时候最好备份,然后重建控制文件,重建控制文件时,将日志组2注释掉,再试用我的方法.祝你成功.
55
56
57
58\---------------------------------------------------------------
59
60试试不完全恢复:
61startup mount;
62recover database until chang 9999;
63选择auto
64
65呵呵,我才学,这种方法是我书上看到的,不知道有没用。我是用这种方法恢复成功过一次。
66startup mount;
67recover database until cancle;
68这也是不完全恢复,能不能用我不知道喽。</sid></sid>