Welcome 微信登录

首页 / 数据库 / MySQL / Oracle用控制文件旧备份恢复后数据库恢复总结

一 Oracle是如何判断控制文件的新旧1 正常情况下控制文件seq#(controlfile_sequence#) 大于等于数据文件头部记录的控制文件seq#(fhcsq)控制文件 scn(controlfile_change#)大于等于数据文件头部scn(fhscn)如下所示:SQL> select controlfile_type,controlfile_sequence#,controlfile_change#,checkpoint_change# from v$database; CONTROL CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE# CHECKPOINT_CHANGE#------- --------------------- ------------------- ------------------CURRENT 16344 2781355383 2781355383 SQL> select hxfil,fhcsq,fhscn,fhrba_seq from x$kcvfh;hxfil :数据文件编号fhcsq:数据文件头部记录的控制文件seqfhscn:数据文件头部的scnfhrba_seq:数据文件头部rba地址中的日志序列号 HXFIL FHCSQ FHSCN FHRBA_SEQ---------- ---------- ---------------- ----------1 16343 2781355383 222 16343 2781355383 223 16343 2781355383 224 16343 2781355383 225 16343 2781355383 226 16343 2781355383 227 16343 2781355383 228 16343 2781355383 2211 16343 2781355383 2212 16343 2781355383 2213 16343 2781355383 22 11 rows selected. 推荐阅读:Oracle用老的控制文件备份恢复新建的数据文件  http://www.linuxidc.com/Linux/2013-05/85126.htm  2 用旧控制文件恢复后的情况如下:RMAN> restore controlfile from "/oracle/app/db1/dbs/01nve87c_1_1"; Starting restore at 14-JAN-13allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=211 devtype=DISK channel ORA_DISK_1: restoring control filechannel ORA_DISK_1: restore complete, elapsed time: 00:00:04output filename=/oracle/CRM2/CRM/control01.ctloutput filename=/oracle/CRM2/CRM/control02.ctlFinished restore at 14-JAN-13 SQL> select controlfile_type,controlfile_sequence#,controlfile_change#,checkpoint_change# from v$database; CONTROL CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE# CHECKPOINT_CHANGE#------- --------------------- ------------------- ------------------BACKUP 16294 2781355207 2781347284 SQL> select hxfil,fhcsq,fhscn,fhrba_seq from x$kcvfh; HXFIL FHCSQ FHSCN FHRBA_SEQ---------- ---------- ---------------- ----------1 16343 2781355383 222 16343 2781355383 223 16343 2781355383 224 16343 2781355383 225 16343 2781355383 226 16343 2781355383 227 16343 2781355383 228 16343 2781355383 2211 16343 2781355383 2212 16343 2781355383 2213 16343 2781355383 22 通过上面两个查询不难发现:controlfile_sequence #=16294 小于数据文件头部的 fhcsq=16343controlfile_change#=2781355207小于数据文件头部的fhscn=2781355383  注意在用旧控制文件恢复后有以下两点需要注意:1CONTROLFILE_CHANGE#=2781355207此值位于哪个归档low scn 和next scn决定恢复应用归档的起始seq号。2数据文件头部的FHRBA_SEQ=22 决定了恢复应用的最后一个归档seq号为22 3 用旧备份控制文件恢复后数据库应该注意两点a 联机日志序号倒退SQL> select group#,archived,sequence#,status from v$log; GROUP# ARC SEQUENCE# STATUS---------- --- ---------- ----------------1 YES 8 INACTIVE2 NO 9 CURRENT6 YES 6 INACTIVE4 YES 7 INACTIVE5 YES 5 INACTIVE3 YES 4 INACTIVE 6 rows selected.b 控制文件头部标记该控制文件为备份控制文件DUMP OF CONTROL FILES, Seq # 16296 = 0x3fa8V10 STYLE FILE HEADER:Compatibility Vsn = 169869568=0xa200100Db ID=3601019238=0xd6a33166, Db Name="CRM"Activation ID=0=0x0Control Seq=16296=0x3fa8, File size=450=0x1c2File Number=0, Blksiz=16384, File Type=4 BACKUP CONTROL
  • 1
  • 2
  • 3
  • 4
  • 下一页
修改Datafile Header规避ORA-01190Oracle当前联机日志组损坏的处理相关资讯      Oracle备份恢复 
  • Oracle数据库物理文件备份/恢复  (07/20/2015 20:53:07)
  • Oracle 数据备份与恢复  (04/26/2014 09:35:49)
  • Oracle 10g控制文件备份到文件与手  (02/23/2014 09:03:34)
  • Oracle使用句柄实现特定场景的无备  (11/24/2014 14:07:02)
  • Oracle控制文件的备份、恢复以及多  (04/10/2014 15:15:06)
  • 非归档下Oracle的备份和恢复  (08/19/2013 09:30:17)
本文评论 查看全部评论 (0)
表情: 姓名: 字数