RMAN恢复测试

  今天做RMAN恢复的测试,做恢复测试,必须在数据库有备份的前提下进行,样例中采用的是完全备份,模拟以下几种情况下的恢复:

1)数据库运行过程中数据文件全部丢失;

2)数据库运行过程中非关键数据文件丢失;

3)数据库运行过程中关键数据文件丢失;

4)联机重做日志文件/归档重做日志文件丢失(未测试);

5)增量备份下归档日志文件丢失(未测试);

         在每个模拟中,都要做一次完全备份,上一个的完全备份可以给下一个模拟使用。

一、测试环境描述

系统版本:Red Hat Enterprise Linux Server release 5.5

数据库版本:oracle 11g R2.

 

执行全备的语句:backup incremental level 0 database;--因为后面要用到增量备份,所以就采用零级备份的方式


二、模拟数据文件全部丢失;

1)备份数据库;

rman target sys/asd@orcl

RMAN>backupincremental level 0 database;--缺省会使用配置中的格式来备份;

 

2scott账户下新建测试表:test_20151031a

SQL> create table test_20151031a  as select * from tabs;

 

Table created.

 

SQL> select count(1) fromtest_20151031a;

 

 COUNT(1)

----------

       15

3)删除所有数据文件

rm �Cf /u01/app/oracle/oradata/orcl/*.dbf

 

sys执行下列操作报错

SQL> select * from dba_data_files;

select * from dba_data_files

              *

ERROR at line 1:

ORA-00604: error occurred at recursive SQLlevel 1

ORA-01116: error in opening database file 1

ORA-01110: data file 1:'/u01/app/oracle/oradata/orcl/system01.dbf'

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

 

4)关闭数据库准备恢复:

shutdown abort;--shutdown immediate会报错

 

5) 启动数据库至nomount状态.

--原本书上写这里要准备密码文件和spfile,但我测试时未使用到这两者也能恢复成功

SQL> startup nomount;

ORACLE instance started.

 

Total System Global Area  422670336 bytes

Fixed Size                  1336960 bytes

Variable Size             314575232 bytes

Database Buffers           96468992 bytes

Redo Buffers               10289152 bytes

 

6启动RMAN

rman target /

7)告诉RMAN要操作的数据库,通过DBID设置:

select dbid from v$database;--查看DBID

set dbid 1405423294

8启动数据库至mount状态:

--可以忽略从自动备份中还原控制文件的步骤

RMAN> sql 'alter database mount';

 

using target database control file insteadof recovery catalog

sql statement: alter database mount

 

9)还原数据文件

restore database;

10)恢复数据库

recover database;

11)打开数据库

sql 'alterdatabase open';

也可以使用

sql 'alter databaseopen resetlogs';--两者的区别在于是否重置日志

 

13)要立即做一次全备

rman target sys/asd@orcl

RMAN>backupincremental level 0 database;--缺省会使用配置中的格式来备份;

 

14)验证测试表是否存在

SQL> select count(1) fromtest_20151031a;

 

 COUNT(1)

----------

       15

 

三、非关键/关键数据数据文件丢失下的恢复

1)创建测试表

         scott账户下创建测试表:

         SQL>create table test_20151031d  as select *from tabs;

2)删除users01.dbf

rm -f/u01/app/oracle/oradata/orcl/users01.dbf

3)数据文件下线

alter database datafile'/u01/app/oracle/oradata/orcl/users01.dbf' offline;

4RMAN 模式下restore/recover数据文件

restore datafile '/u01/app/oracle/oradata/orcl/users01.dbf';

recover datafile '/u01/app/oracle/oradata/orcl/users01.dbf'

 

5)数据文件上线

alter database datafile'/u01/app/oracle/oradata/orcl/users01.dbf' online;

 

注:

1)非关键数据文件丢失不用关闭数据库,关键数据文件丢失需要关闭数据库。

2)非关键数据文件丢失后,执行查询操作时,前台没有发现异常,告警文件中会有相关记录。

 

 


你可能感兴趣的:(数据恢复,database,rman)