您好,欢迎访问一九零五行业门户网

Oracle 联机重做日志文件恢复(redo log)

非当前联机日志文件故障恢复 1.启动数据库时遇到ora-00313,ora-00312错误。 ora-00313: open failed for members of log group
非当前联机日志文件故障恢复
1.启动数据库时遇到ora-00313,ora-00312错误。
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/home/oracle/oradata/s1/redo01.log'
2.查看v$log视图。
sql> select * from v$log;
group# thread# sequence# bytes members arc status first_change# first_tim
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 11 52428800 1 yes inactive 489912 09-nov-12
3 1 10 52428800 1 yes inactive 488868 08-nov-12
2 1 12 52428800 1 no current 519028 11-nov-12
3.用clear命令重建该日志文件
如果该日志文件已经归档则:
sql> alter database clear logfile group 1;
database altered.
如果该日志文件还没有归档则:
sql> alter database clear unarchived logfile group 3;
database altered.
4.打开数据库,重新备份数据库(建议clear,特别是clear unarchived后做一次全备份)
sql> alter database open;
database altered.
当前联机日志文件故障恢复
归档模式下,当前日志文件损坏有两种情况
一、数据库正常关闭,日志文件中没有解决的事务要实例恢复,当前日志组的损坏可直接用户
alter database clear unarchived logfile group n来重建
二、日志文件中有活动事物,数据库需要介质恢复,有两种补救方法
a、在归档模式下,有可用备份
b、无可用备份,通过强制性恢复,但可能会导致数据库不一致
a.在归档模式下有可用备份(不完全恢复)
1.1.启动数据库时报错,并用v$log查看
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/home/oracle/oradata/s1/redo01.log'
ora-27037: unable to obtain file status
linux error: 2: no such file or directory
additional information: 3
sql> select * from v$log;
group# thread# sequence# bytes members arc status first_change# first_tim
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 16 52428800 1 no current 520744 11-nov-12
2 1 15 52428800 1 yes active 520712 11-nov-12
3 1 14 52428800 1 yes inactive 520705 11-nov-12
2.试用clear恢复
sql> alter database clear logfile group 1;
sql> alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 1
*
error at line 1:
ora-01624: log 1 needed for crash recovery of instance s1 (thread 1)
ora-00312: online log 1 thread 1: '/home/oracle/oradata/s1/redo01.log'
3.执行recover database until cancel先用户auto后用cancel,报错如下:
sql> recover database until cancel;
ora-00279: change 520744 generated at 11/11/2012 22:43:39 needed for thread 1
ora-00289: suggestion : /archive1/1_16_798842981.dbf
ora-00280: change 520744 for thread 1 is in sequence #16
specify log: {=suggested | filename | auto | cancel}
auto
ora-00308: cannot open archived log '/archive1/1_16_798842981.dbf'
ora-27037: unable to obtain file status
linux error: 2: no such file or directory
additional information: 3
ora-00308: cannot open archived log '/archive1/1_16_798842981.dbf'
ora-27037: unable to obtain file status
linux error: 2: no such file or directory
additional information: 3
ora-01547: warning: recover succeeded but open resetlogs would get error below
ora-01194: file 1 needs more recovery to be consistent
ora-01110: data file 1: '/home/oracle/oradata/s1/system01.dbf'
sql> recover database until cancel;
ora-00279: change 520744 generated at 11/11/2012 22:43:39 needed for thread 1
ora-00289: suggestion : /archive1/1_16_798842981.dbf
ora-00280: change 520744 for thread 1 is in sequence #16
specify log: {=suggested | filename | auto | cancel}
cancel
ora-01547: warning: recover succeeded but open resetlogs would get error below
ora-01194: file 1 needs more recovery to be consistent
ora-01110: data file 1: '/home/oracle/oradata/s1/system01.dbf'
ora-01112: media recovery not started
4.在rman下restore database;
rman> restore database;
5.在rman下recover database:报错如下:
rman> recover database;
starting recover at 11-nov-12
using channel ora_disk_1
starting media recovery
media recovery failed
rman-00571: ===========================================================
rman-00569: =============== error message stack follows ===============
rman-00571: ===========================================================
rman-03002: failure of recover command at 11/11/2012 22:54:15
ora-00283: recovery session canceled due to errors
rman-11003: failure during parse/execution of sql statement: alter database recover if needed
start
ora-00283: recovery session canceled due to errors
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/home/oracle/oradata/s1/redo01.log'
ora-27037: unable to obtain file status
linux error: 2: no such file or directory
additional information: 3
其它类似信息

推荐信息