ORA-06054探究

ORA-06054异机恢复经典的错误,06054找的是current redo也就是备份完成那一时刻的current 状态的在线日志,

RMAN是不备份online redo log的,所以恢复也不恢复redo

[oracle@guo PROD2]$ ll

total 1762996

-rw-r----- 1 oracle oinstall 9748480 Jun 9 14:52 control01.ctl

-rw-r----- 1 oracle oinstall 362422272 Jun 9 14:45 example01.dbf

-rw-r----- 1 oracle oinstall 576724992 Jun 9 14:45 sysaux01.dbf

-rw-r----- 1 oracle oinstall 754982912 Jun 9 14:45 system01.dbf

-rw-r----- 1 oracle oinstall 94380032 Jun 9 14:45 undotbs01.dbf

-rw-r----- 1 oracle oinstall 5251072 Jun 9 14:45 users01.dbf

恢复错误信息


RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 06/09/2015 14:46:00

RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 25 and starting SCN of 991157


查看源机器当前scn
SYS@PROD2 > select * from v$log;

    GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME

---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------

         1 1 25 52428800 512 1 NO CURRENT 991157 09-JUN-15 2.8147E+14      就是06054要找的那个

         2 1 23 52428800 512 1 YES INACTIVE 991092 09-JUN-15 991143 09-JUN-15

         3 1 24 52428800 512 1 YES INACTIVE 991143 09-JUN-15 991157 09-JUN-15


从源机上把redo拷贝过去(需要停机,慎用)

[oracle@guo1 PROD2]$ scp redo0* guo:/u01/app/oracle/oradata/PROD2/

oracle@guo's password:

redo01.log 100% 50MB 16.7MB/s 00:03

redo02.log 100% 50MB 16.7MB/s 00:03

redo03.log 100% 50MB 25.0MB/s 00:02

[oracle@guo1 PROD2]$ 

异机上

[oracle@guo PROD2]$ ll

total 1882944

-rw-r----- 1 oracle oinstall 9748480 Jun 9 14:52 control01.ctl

-rw-r----- 1 oracle oinstall 362422272 Jun 9 14:45 example01.dbf

-rw-r----- 1 oracle oinstall 52429312 Jun 9 14:52 redo01.log

-rw-r----- 1 oracle oinstall 52429312 Jun 9 14:52 redo02.log

-rw-r----- 1 oracle oinstall 17821696 Jun 9 14:52 redo03.log

-rw-r----- 1 oracle oinstall 576724992 Jun 9 14:45 sysaux01.dbf

-rw-r----- 1 oracle oinstall 754982912 Jun 9 14:45 system01.dbf

-rw-r----- 1 oracle oinstall 94380032 Jun 9 14:45 undotbs01.dbf

-rw-r----- 1 oracle oinstall 5251072 Jun 9 14:45 users01.dbf

[oracle@guo PROD2]$

再次恢复,正常

RMAN> recover database;

Starting recover at 09-JUN-15

using channel ORA_DISK_1

starting media recovery

archived log for thread 1 with sequence 25 is already on disk as file /u01/app/oracle/oradata/PROD2/redo01.log

archived log file name=/u01/app/oracle/oradata/PROD2/redo01.log thread=1 sequence=25

media recovery complete, elapsed time: 00:00:01

Finished recover at 09-JUN-15

不过还是需要resetlogs打开

RMAN> alter database open;

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of alter db command at 06/09/2015 14:52:55

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

在报06054的时候直接resetlogs打开的时候oracle会自动重建redo

如何解决呢?方法只有一个,将那个时间的日志拷贝过来,进行恢复就可以了。如何拷贝呢?关闭源库后才能拷贝,这个。。。

 一般情况下恢复到指定SCN就可以避免这个错误。

 确定scn是不是最后的scn,确定了之后直接resetlogs打开。

另外还可以使用RMAN duplicat功能恢复可以不用resetlogs打开


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

转载于:http://blog.itpub.net/24742969/viewspace-1693114/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值