关于oracle修复控制文件与数据文件不一致的问题----

时间:2024-01-06 16:47:32

本小菜鸟周末鼓捣数据库关于rman恢复与备份方面的实验,结果不知道哪根筋搭错了,手一哆嗦,做了不知道什么操作,就出现了数据库打不开的严重状态,只能开启到mount状态,但是切换到open状态时就会报错

ORA-01190: 控制文件或数据文件 1 来自最后一个 RESETLOGS 之前
ORA-01110: 数据文件 1: 'D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF'

google了下发现,是由于控制文件与数据文件不同步导致的,鼓捣了一下午加一晚上,一点起色都没有啊,最后竟然连参数文件spfile也抛弃了我,小菜鸟我挠头挠得都快没毛了。。。呜呜呜

但是、、、、、这个世界并没有抛弃我,因为聪明的我为了避免意外的发生,在实验之前做了全款备份,将数据文件和控制文件都做了完整的备份,作为一个听话的好孩子,我清楚地记得,老师说过,只要有完整的数据文件备份和相应的控制文件备份,我们就可以恢复数据库!!!

我坚信老师的这句话,于是乎开始了漫漫的数据恢复路,过程及其艰辛(伦家是小菜鸟啦,表笑话伦家啦~),终于,皇天不负我,我修好了我滴数据库,吼吼,先总结如下,以备以后忘记。。。。。。

1、登录rman,

rman target /;
set bdid='' -------这里要填入需要恢复的数据库的bdid,一定要填哦,不然不知道你要修复的是哪个数据库
startup mount; -------将数据库开启到mount状态;

2、查看当前我们拥有的备份集

RMAN> list backup summary;

备份列表
===============

文件关键字 TY LV S Ckp SCN Ckp 时间 段数 副本数 压缩标记
---- ------- - -- - ---------- ---------- ------- ------- ---------- ---
1 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
11 B 0 A 2224622 02-3月 -14 1 1 NO TAG2014030
2T142822
2 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
11 B 0 A 2224622 02-3月 -14 1 1 NO TAG2014030
2T142822
3 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
11 B 0 A 2224622 02-3月 -14 1 1 NO TAG2014030
2T142822
4 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
5 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
6 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
7 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
8 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
9 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
10 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
13 B 1 A 2225134 02-3月 -14 1 1 NO TAG2014030
2T143311
11 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
23 B 0 A 2231035 02-3月 -14 1 1 NO TAG2014030
2T160453
21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
17 B 0 A 2227698 02-3月 -14 1 1 NO TAG2014030
2T153455
15 B 1 A 2225770 02-3月 -14 1 1 NO TAG2014030
2T143810
12 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
25 B 1 A 2231845 02-3月 -14 1 1 NO TAG2014030
2T160929
12 21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620
19 B 1 A 2229089 02-3月 -14 1 1 NO TAG2014030
2T154312
13 27 B 1 A 2232416 02-3月 -14 1 1 NO TAG2014030
2T161200
13 21 B 1 A 2229561 02-3月 -14 1 1 NO TAG2014030
2T154620

控制文件备份列表
============================

CF Ckp SCN Ckp 时间 BS 关键字 S 段数 副本数 压缩标记
---------- ---------- ------- - ------- ------- ---------- ---
2232493 02-3月 -14 28 A 1 1 NO TAG20140302T161200
2231937 02-3月 -14 26 A 1 1 NO TAG20140302T160929
2231067 02-3月 -14 24 A 1 1 NO TAG20140302T160453
2229596 02-3月 -14 22 A 1 1 NO TAG20140302T154620
2229123 02-3月 -14 20 A 1 1 NO TAG20140302T154312
2227735 02-3月 -14 18 A 1 1 NO TAG20140302T153455
2225807 02-3月 -14 16 A 1 1 NO TAG20140302T143810
2225211 02-3月 -14 14 A 1 1 NO TAG20140302T143311
2224655 02-3月 -14 12 A 1 1 NO TAG20140302T142822
2223642 02-3月 -14 10 A 1 1 NO TAG20140302T141712

RMAN>list incarnation of database; ---------------查看当前数据库的所有incarnation

数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORCL 1362531435 PARENT 1886312 20-1月 -14
2 2 ORCL 1362531435 PARENT 02-3月 -14
3 3 ORCL 1362531435 PARENT 02-3月 -14
4 4 ORCL 1362531435 CURRENT 2230890 02-3月 -14

通过观察,我们发现,我们拥有4个incarnation(原型),我们拥有2个版本的数据库备份,scn分别是2231035、2227698,我们能使用的是scn=2227698的数据库备份版本,该版本是原型2和3的中间状态,也就是说数据文件是在INCARNATION2之后, 3前备份的,所以我们要将数据库重置到incarnation 2:

RMAN->reset database to incarnation 2;

然后关闭数据库,将数据库开启到nomount状态,准备进行控制文件的恢复,我们首先要找到scn为2227698对应的数据库备份文件存放的位置,该文件的TAG=TAG20140302T153455

RMAN->shutdown immediate;
RMAN->startup nomount;

 关于oracle修复控制文件与数据文件不一致的问题----

开始恢复数据文件

RMAN->restore controlfile from 'D:\app\fx\flash_recovery_area\orcl\BACKUPSET\2014_03_02\O1_MF_NCSN1_TAG20140302T160453_9K5SMWY8_.BKP'; 

还原控制文件后,将数据库切换到mount状态,进行相应数据文件的恢复,数据文件恢复后,用RESETLOGS打开数据库,如果打开数据库时报错

ORA-01190: 控制文件或数据文件 1 来自最后一个 RESETLOGS 之前
ORA-01110: 数据文件 1: 'D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF'

我们就需要修改参数_allow_resetlogs_corruption=true,然后再用RESETLOGS打开数据库就可以啦,记得用RESETLOGS打开数据库后一定要再次对数据库进行全库备份。

修改参数_allow_resetlogs_corruption时,我们可以通过重建pfile,在外围手动修改pfile,在文件内加入*._allow_resetlogs_corruption=true,后通过pfile启动数据库,在通过pfile重建spfile就可以啦。。。

关于为何选择scn是2231035、2227698的备份集作为待选的恢复备份?---因为这里需要使用的是一个全库备份的备份集,我们没有全库备份集,但是我们有0级备份啊,在今天这种情况下,完全可以用0级备份来代替全库备份,因为两者在数据内容上是完全一致的,只是0级备份不能用作数据块级的恢复而已。

至此,小菜鸟修复数据库的全部过程就到这里啦,感谢收看~~~