历史备份控制文件恢复数据库

oracle 10g 以后允许在不同的incarnation之间进行完全/不完全恢复。在参数文件log_archive_format中多了一个%r格式符号,这是
resetlogs的标志号,这一归档模式避免不同incarnation的归档相互覆盖,从而使得跨越resetlogs恢复的日记基础得以保证。


RMAN> list incarnation; List of Database Incarnations DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time ------- ------- -------- ---------------- --- ---------- ---------- 1 1 ORCL 1358813460 PARENT 1 15-AUG-09 2 2 ORCL 1358813460 PARENT 945184 09-NOV-13 3 3 ORCL 1358813460 CURRENT 2181557 29-DEC-13
select thread#,sequence#,first_change#,next_change# from v$archived_log;

     2       55        2140766     2172246

     2       56        2172246     2181556

     2        1        2181557     2203709



   THREAD#  SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#

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

     2        2        2203709     2224422

     2        3        2224422     2258307

     2        4        2258307     2258311

     1        1        2237798     2280109

     1        2        2280109     2280114

     1        3        2280114     2280116

     2        5        2280111     2280131

     1        4        2280116     2280127

SQL> select thread#,sequence#,status from v$log;



   THREAD#  SEQUENCE# STATUS

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

     1        3 INACTIVE

     1        4 ACTIVE

     2        5 INACTIVE

     2        6 CURRENT

以上是原控制文件的信息。同时参照V$log_history视图。

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

RMAN> restore controlfile from '/home/oracle/c.ctl';



Starting restore at 31-DEC-13

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=17 instance=orcl2 device type=DISK



channel ORA_DISK_1: copied control file copy

output file name=+DATA/orcl/controlfile/current.260.835608817

output file name=+FRA/orcl/controlfile/current.256.835608825

Finished restore at 31-DEC-13



RMAN> list incarnation;



released channel: ORA_DISK_1



List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

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

1       1       ORCL     1358813460       PARENT  1          15-AUG-09

2       2       ORCL     1358813460       CURRENT 945184     09-NOV-13

尝试rman 恢复

RMAN> recover database;



Starting recover at 31-DEC-13

Starting implicit crosscheck backup at 31-DEC-13

allocated channel: ORA_DISK_1

Finished implicit crosscheck backup at 31-DEC-13



Starting implicit crosscheck copy at 31-DEC-13

using channel ORA_DISK_1

Crosschecked 2 objects

Finished implicit crosscheck copy at 31-DEC-13



searching for all files in the recovery area

cataloging files...

cataloging done



List of Cataloged Files

=======================

File Name: +fra/ORCL/BACKUPSET/2013_12_31/ncnnf0_TAG20131231T092954_0.296.835608605

……

…… // 自动根据参数db_recovery_file_dest指定的目录中去寻找可用文件

File Name: +fra/ORCL/AUTOBACKUP/2013_12_31/thread_1_seq_2.292.835607377

File Name: +fra/ORCL/ARCHIVELOG/2013_12_31/thread_1_seq_3.293.835607395

File Name: +fra/ORCL/ARCHIVELOG/2013_12_31/thread_2_seq_5.294.835607395

File Name: +fra/ORCL/ARCHIVELOG/2013_12_31/thread_1_seq_4.295.835607399



using channel ORA_DISK_1

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

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

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

RMAN-03002: failure of recover command at 12/31/2013 09:36:12

RMAN-06094: datafile 8 must be restored  
//提示datafile 8 缺失,手动删除过。
RMAN> recover database skip tablespace wayde;



Starting recover at 31-DEC-13

using channel ORA_DISK_1



Executing: alter database datafile 8 offline

starting media recovery

……

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

Finished recover at 31-DEC-13



RMAN> list incarnation;





List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

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

1       1       ORCL     1358813460       PARENT  1          15-AUG-09

2       2       ORCL     1358813460       PARENT  945184     09-NOV-13

3       3       ORCL     1358813460       CURRENT 2181557    29-DEC-13

结论:在用历史控制文件恢复数据库的时候,如果在历史控制文件后又新添加了‘表空间’,“日志文件(不是active或者current状态)”,“控制文件中有但是实际没有” 在恢复的时候,会重新建表空间,日志以控制文件为准儿。如果在备份了控制文件之后手动删除了表空间,那么在恢复的时候要先把数据文件offline(sql语句) 或者 直接  RMAN> recover database skip tablespace wayde;

 

 

你可能感兴趣的:(数据库)