Oracle 基于 RMAN 的不完全恢复(incomplete recovery by RMAN)(六)

2014-11-24 17:54:20 · 作者: · 浏览: 9
ted: alter database recover logfile '/u02/DB/oradb/arch/2013_07_05/o1_mf_1_30_8xdbv338_.arc'
Fri Jul 05 10:37:15 2013
alter database open resetlogs --->执行open resetlogs
Archived Log entry 8 added for thread 1 sequence 33 ID 0x98733640 dest 1: --->这个地方是关键
RESETLOGS after incomplete recovery UNTIL CHANGE 1365529
Resetting resetlogs activation ID 2557687360 (0x98733640)
Errors in file /u01/app/oracle/diag/rdbms/oradb/oradb/trace/oradb_ora_30772.trc:
ORA-00367: checksum error in log file header --->下面伴随一堆重置日志文件前的ORA校验错误
ORA-00322: log 1 of thread 1 is not current copy
ORA-00312: online log 1 thread 1: '/u02/DB/oradb/redo/redo01.log'
Fri Jul 05 10:37:18 2013
Errors in file /u01/app/oracle/diag/rdbms/oradb/oradb/trace/oradb_m000_30963.trc:
ORA-00316: log 1 of thread 1, type 0 in header is not log file
ORA-00312: online log 1 thread 1: '/u02/DB/oradb/redo/redo01.log'
Errors in file /u01/app/oracle/diag/rdbms/oradb/oradb/trace/oradb_ora_30772.trc:
ORA-00367: checksum error in log file header
ORA-00322: log 2 of thread 1 is not current copy
ORA-00312: online log 2 thread 1: '/u02/DB/oradb/redo/redo02.log'
Errors in file /u01/app/oracle/diag/rdbms/oradb/oradb/trace/oradb_m000_30963.trc:
ORA-00316: log 2 of thread 1, type 0 in header is not log file
ORA-00312: online log 2 thread 1: '/u02/DB/oradb/redo/redo02.log'
Errors in file /u01/app/oracle/diag/rdbms/oradb/oradb/trace/oradb_ora_30772.trc:
ORA-00367: checksum error in log file header
ORA-00322: log 3 of thread 1 is not current copy
ORA-00312: online log 3 thread 1: '/u02/DB/oradb/redo/redo03.log'
Errors in file /u01/app/oracle/diag/rdbms/oradb/oradb/trace/oradb_m000_30963.trc:
ORA-00316: log 3 of thread 1, type 0 in header is not log file
ORA-00312: online log 3 thread 1: '/u02/DB/oradb/redo/redo03.log'
Fri Jul 05 10:37:23 2013
Setting recovery target incarnation to 3 --->设置新的incarnation


-->下面的归档日志的产生时间与alert日志中的时间相吻合
[oracle@node1 2013_07_05]$ ls -al --full-time o1_mf_1_33_8xddbvsc_.arc
-rw-r----- 1 oracle asmadmin 259584 2013-07-05 10:37:15.000000000 +0800 o1_mf_1_33_8xddbvsc_.arc


-->查询视图也可以得到在RESETLOGS时产生了归档日志
SQL> col name format a60 wrap
SQL> SELECT name,sequence# seq#,status,completion_time,end_of_redo_type eof_type from v$archived_log where sequence#=33;


NAME SEQ# S COMPLETION_TIME EOF_TYPE
------------------------------------------------------------ ---------- - ----------------- ----------
/u02/database/oradb/flash_recovery_area/ORADB/archivelog/201 33 A 20130705 10:37:15 RESETLOGS
3_07_05/o1_mf_1_33_8xddbvsc_.arc


-->验证结果
SQL> alter database open resetlogs;


Database altered.


SQL> select * from scott.t2;


ID DT
---------- --------------------
Robinson 20130705 10:08:15
Jackson 20130705 10:11:27
Winson 20130705 10:15:47
LastRecord 20130705 10:23:44
Completed 20130705 10:26:20


五、小结
a、RMAN支持基于TIME,SCN,SEQUENCE参数的不完全恢复,不支持基于CANCEL的不完全恢复
b、所有实施了不完全恢复的数据库都需要以open resetlogs方式打开数据库,且同时伴随一个新的incarnation产生
c、不完全恢复之后即使是恢复到故障点,或者说想做完全恢复,都只能是做不完全恢复到最近时刻
d、不完全恢复后再次恢复到最新时刻,新的incarnation变为CURRENT状态,中间的incarnation为ORPHAN状态
e、首次不完全恢复以open resetlogs方式打开数据库时,未归档的联机日志被归档
f、注意until子句的用法。until子句是到什么什么,不包括,是一个非半闭包的形式
g、生产环境建议不完全恢复前后备份数据库