f这3个字段对应的就是rba,rba的意思是: Recent entries in the redo thread of an
Oracle instance are addressed using a 3-part redo byte address, or RBA. An RBA is comprised of : the log file sequence number (4 bytes) the log file block number (4 bytes) the byte offset into the block at which the redo record starts (2 bytes)
在datafile header上记录rba,在恢复时就能非常准确的知道需要哪个日志文件(通过the log file sequence number)以及哪个block(通过the log file block number)以及 在这个日志block上从哪个byte开始读取恢复(通过the byte offset)
select hxfil file_num,fhrba_seq sequence,fhrba_bno sequence_block,fhrba_bof block_offset from x$kcvfh;
col file_name for a30 select HXFIL File_num,substr(HXFNM,1,45) File_name, FHSCN SCN,FHRBA_SEQ Sequence from X$KCVFH;
判断datafile做recover需要的archive log的sequence是多少,也就是说做recover到这个sequence,那么control file和datafile header中的记录就一致了。
The value for the column X$KCVFH.FHSTA (file header status) for an open database with an online datafiles in versions prior to version 10 were all 4, 9i,10g open状态 9i全部是4 (fuzzy) 10g 8196(system,fuzzy),其他4
一致关闭后,startup mount(fuzz=no) 8192(system) 0(其余)
(10g以后)(scn与time互换) scn-> time select to_char(scn_to_timestamp(9065273060811),'yyyy-mm-dd hh24:mi:ss') scn from dual;
time -> scn select timestamp_to_scn( to_timestamp('2013-09-13 07:15:31','yyyy-mm-dd hh24:mi:ss') ) scn from dual;
虽然参数“_allow_resetlogs_corruption”可以在checkpoint SCN不一致时强制打开数据库,但是这样的数据库在open后必须马上作全库的export,然后重建数据库并import数据。
以下条件需要使用using backup controlfile 1)、使用备份控制文件 2)、重建resetlogs控制文件,如果重建立noresetlogs不必要使用using backup controlfile
以下条件需要使用resetlog 1)在不完全恢复(介质恢复) 2)使用备份控制文件
1. recover database using backup controlfile 如果丢失当前控制文件,用冷备份的控制文件恢复的时候,用来告诉oracle,不要以controlfile中的scn作为恢复的终点;
2. recover database until cancel 如果丢失current/active redo的时候,手动指定终点。
3. recover database using backup controlfile until cancel; 如果 丢失当前controlfile并且current/active redo都丢失,会先去 自动 应用归档日志,可以实现最大的恢复;
4. recover database until cancel using backup controlfile; 如果 丢失当前controlfile并且current/active redo都丢失,以旧的redo中的scn为恢复终点。因为没有应用归档日志,所有会丢失数据。
二、总结 1、using backup controlfile用于恢复备份的控制文件与当前的控制文件不一致的情形 2、一旦使用了using backup controlfile方式,控制文件的类型将由 current 转移到 backup 类型,同时open_resetlogs为required 3、一旦使用了using backup controlfile方式,后续再次使用recover database将变得无效 4、必须要使用 resetlogs 方式打开数据库,即使我们做的是完全恢复
recover database using backup controlfile until cancel; 然后输入测试库的redo,逐个试,直接能起库为止。/paic/hq/t1inv/data/oradata/t1inv/redo61.log
recover automatdic standby DATABASE until TIME '2013-12-09 06:30:00';
|