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:数据文件头部记录的控制文件seq号
fhscn:数据文件头部的scn号
fhrba_seq:数据文件头部rba地址中的日志序列号
HXFIL FHCSQ FHSCN FHRBA_SEQ
---------- ---------- ---------------- ----------
1 16343 2781355383 22
2 16343 2781355383 22
3 16343 2781355383 22
4 16343 2781355383 22
5 16343 2781355383 22
6 16343 2781355383 22
7 16343 2781355383 22
8 16343 2781355383 22
11 16343 2781355383 22
12 16343 2781355383 22
13 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-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=211 devtype=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
output filename=/oracle/CRM2/CRM/control01.ctl
output filename=/oracle/CRM2/CRM/control02.ctl
Finished 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 22
2 16343 2781355383 22
3 16343 2781355383 22
4 16343 2781355383 22
5 16343 2781355383 22
6 16343 2781355383 22
7 16343 2781355383 22
8 16343 2781355383 22
11 16343 2781355383 22
12 16343 2781355383 22
13 16343 2781355383 22
通过上面两个查询不难发现:
controlfile_sequence #=16294 小于数据文件头部的 fhcsq=16343
controlfile_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 INACTIVE
2 NO 9 CURRENT
6 YES 6 INACTIVE
4 YES 7 INACTIVE
5 YES 5 INACTIVE
3 YES 4 INACTIVE
6 rows selected.
b 控制文件头部标记该控制文件为备份控制文件
DUMP OF CONTROL FILES, Seq # 16296 = 0x3fa8
V10 STYLE FILE HEADER:
Compatibility Vsn = 169869568=0xa200100
Db ID=3601019238=0xd6a33166, Db Name='CRM'
Activation ID=0=0x0
Control Seq=16296=0x3fa8, File size=450=0x1c2
File Number=0, Blksiz=16384, File Type=4 BACKUP CONTROL
相关推荐
dataminer 2020-06-25
lklong 2020-11-22
oraclemch 2020-11-06
shilukun 2020-10-10
周嘉笙 2020-11-09
zhuzhufxz 2020-09-16
bfcady 2020-08-16
Hody 2020-08-16
FightFourEggs 2020-08-16
数据库设计 2020-08-16
yanghuatong 2020-08-16
dbasunny 2020-08-16
罗罗 2020-08-16
ihuaqiang 2020-08-16
choice0 2020-07-30
娜娜 2020-07-28
solarspot 2020-07-28
踩风火轮的乌龟 2020-07-26
娜娜 2020-07-20
xwb 2020-07-19
娜娜 2020-07-18
流云追风 2020-07-04
娜娜 2020-06-22
zhangchaoming 2020-06-21