【个人笔记】用RMAN恢复控制文件以及相关操作步骤的个人理解

当Oracle数据库的控制文件损坏后,需通过RMAN进行恢复。本文详细介绍了在Oracle 11g中,如何在控制文件丢失后,利用RMAN备份恢复控制文件,并解释了在恢复后执行`recover database`的原因,以及`open resetlogs`操作后的全备必要性。过程中强调了数据库incarnation变化和恢复策略的重要性。
摘要由CSDN通过智能技术生成

Oracle 11g R2

测试前做过全备

测试机所有控制文件全部删除

      当数据库控制文件损坏后,数据库是无法正常down下来的,只能进行shutdown abort 操作。这个时候startup数据库,只能启动到nomount状态。

  1.   restore controlfile from '/u01/dbbackup/rman/cf_c-1490764804-20180203-02.bkp';

       rman target / 进入rman界面进行操作,执行上面的命令。控制文件的备份路径换成你自己的。

       当你看到  Finished restore at 2018-02-03 15:45:58  后就说明执行成功了。

       执行成功后数据库就可以切换到mount状态下。

2.  alter database mount;
将数据库切换到mount状态下。

3.  recover  database;

      这时候我们发现一件很神奇的事情,默认controlfile的头信息要大于等于数据文件的头信息,他先更新controlfile的头信息,再更新数据文件的头信息,所以所有controlfile的头信息要比数据文件的头信息要么一样,要么新。由于我这个controlfile是从备份文件里面调回来的,所以这个controlfile 的头信息要比现在的数据文件的头信息旧。那这个时候怎么办,我要对整个数据库做一个recover database。为什么要做recover database。而不用做restore datafile,因为数据文件的介质还在。为什么要做 recover database,因为我们的控制文件的头信息要比所有的数据文件的头信息旧,这个时候要做前滚,把所有的头信息都扫一边,把其中最新的头信息拿到,然后所有的控制文件和数据文件的头信息都根据这个头信息,将不一致的头信息都滚到一致的状态下,所以要整库去做recover database。

4.    alter database open resetlogs;
       接下来执行alter database open resetlogs;重新初始化。要以重置日志模式,重置日志模式当中oracle会把所有的redolog文件全部的初始化一遍,因为此时redolog已经没有用了

redolog里面放的前滚的事务已经没有用了,全部要初始化,然后这个时候数据库才能open打开。执行完这个alter database open resetlogs后会看到 database open。


这个时候我们使用archive log list 发现log的编号又从最初始的1重新开始了。

也就是我们的数据库重置了一个新的incarnation(化身,实体化),

       数据库重置了一个“新的化身”(挺有意思的叫法)。
       现在我们登陆RMAN,由于数据库重置了一个新的版本,所有我们要对数据库做一次全备,做全备之前要把,过去的备份文件删掉,因为我们的数据库现在有了一个新的版本出现了,所有要做一次全备。

       大家记住一个结论,凡是做过 open resetlogs,数据库必需做一次全备。因为数据库已经产生了一个新的incarnation(化身),所以数据库必须做一次全备,之前的备份已经无效了。(数据库恢复好了,能够正常打开来了,才能做全备。)(那么如果alter database open resetlogs做完以后,数据库没有做全备,然后数据库就在跑业务了,然后数据库突然crash掉了。那么也可以依赖,open resetlogs之前的全备去恢复数据库,但是这个还原做的功能也是有限的,在你使用open resetlogs之前的全备去还原的时候,如果你的数据库在open resetlogs以后做过库结构的改变,比如新建过表空间,加过数据文件或者数据文件改动过,只要这些库结构变过,那就不能恢复了,彻底不能恢复了)。

所以,所以,在你做了alter database open resetlogs以后一定要做全备,不做全备,你就是在走钢丝。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值