实验一:删除控制文件

一,数据库版本

        

二,查看日志模式

如果Database log mode 为No Archive Mode ,Automatic archival 为 Disabled需要先更改日志模式,

更改方式:

SQL> shutdown immediate;       ---关闭数据库

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount             ---启动到mount状态

ORACLE instance started.
SQL>
alter database archivelog;    ---修改为归档模式

Database altered.

SQL> alter database open;      ---打开数据库

Database altered.

如果不改为归档模式会有如下报错:

如果想在归档模式下进行备份, 只能把数据库启动到 mount 状态下才可以进行

但在生产环境中,一般情况下数据库是不能随意进行关闭的,所以一般在安装好数据库之后直接就开启归档模式,更改归档需要在 mount 模式下

三,rman target / 进入RMAN模式

backup database 进行备份。

从命令输出上可以看到,在备份成功执行后,rman执行了控制文件和参数自动备份。

四,查看rman库中的控制文件备份

五,模拟删除控制文件

rm /u01/app/oracle/oradata/orcl11g/control01.ctl

这是我的控制文件所在目录,需要找到自己的控制文件目录。

六,关闭数据库

七,恢复控制文件

八,查看数据库是否正常

(需要知道RMAN备份时的DBID,即第三步图中的)

实验二:删除控制文件,参数文件,数据文件。

首先介绍什么是0级备份和增量备份。

0级备份备份数据全面、恢复高效,但也存在一些缺点。首先,备份和恢复的时间较长,对于大型数据库来说可能会造成较长时间无法访问数据库的情况;其次,备份的容量较大,占用存储资源较多。因此,对于一些重要数据表的备份,我们可以考虑增量备份的方法

增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加和者被修改的文件。

实验过程:

1 、第一时间节点创建表 test, 并插入 5 条数据
2 RMAN level 0 全备以及归档备份
3 、第二时间节点表 test 再次插入 5 条数据库
4 RMAN level 1 增量备份
5 、数据库 open 状态下手动删除所有数据文件、控制文件、参数文件(模拟故障)
6 RMAN 启动到 nomount 状态恢复 spfile
7 、数据库重新启动(用刚才恢复的 spfile 启动)
8 RMAN 恢复控制文件
9 、数据库 mount
10 、恢复数据文件( restore datbase
11 、应用日志( recover database
12 、验证表 test 完整性

1,第一时间节点创建表test,并插入5条数据

2,RMAN level 0全备以及归档备份

backup incremental level 0 database tag 'db0' format '/u01/rman/db0_%T.bak';

3,第二时间节点表test再次插入5条数据库

4,RMAN level 1增量备份

backup incremental level 1 database tag 'db1'  format '/u01/rman/db1_%T.bak';

5,备份归档

backup archivelog all format '/u01/rman/arch_%T.bak'  tag 'arch';

6,数据库open状态下手动删除所有数据文件、控制文件、参数文件(模拟故障)

7.关数据库

8,RMAN启动到nomount状态恢复spfile

9,恢复数据文件(restore datbase

10.应用日志(recover database

restore 是还原,文件级的恢复。就是物理文件还原。
recover 是恢复,数据级的恢复。逻辑上恢复,比如应用归档日志、重做日志,全部同步,保持一致。

11.验证表test完整性

结论:表test完整,RMAN数据恢复成功。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐