oracle:rman恢复----通过增量备份来恢复

时间:2021-06-07 07:49:51

   试验计划:先rman进行一个0级备份,插入表相关数据,再进行level 1级增量备份,进行rman恢复

实验环境:归档模式下,oracle10.2.0.1

 

开始试验:

1. rman level 0级备份

RMAN> backup incremental level 0 database;

Starting backup at 02-DEC-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 0 datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/system01.dbf
input datafile fno=00003 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/sysaux01.dbf
input datafile fno=00002 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/undotbs01.dbf
input datafile fno=00006 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/yn.dbf
input datafile fno=00004 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 02-DEC-13
channel ORA_DISK_1: finished piece 1 at 02-DEC-13
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_12_02/o1_mf_nnnd0_TAG20131202T222739_99s66wc3_.bkp tag=TAG20131202T222739 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:02:06
channel ORA_DISK_1: starting incremental level 0 datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 02-DEC-13
channel ORA_DISK_1: finished piece 1 at 02-DEC-13
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_12_02/o1_mf_ncsn0_TAG20131202T222739_99s6bvm4_.bkp tag=TAG20131202T222739 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 02-DEC-13

 

2.插入相关表数据

SQL> select * from t1;

    ID NAME
---------- --------------------
     1 first
     2 second

SQL> insert into t1 values(3,'rman3');

1 row created.

SQL> commit;

Commit complete.

SQL> insert into t1 values(4,'rman4');

1 row created.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

SQL> alter system checkpoint;

System altered.

SQL> 

3.rman level  0级备份

RMAN> backup incremental level 1 database;

Starting backup at 02-DEC-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1 datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/system01.dbf
input datafile fno=00003 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/sysaux01.dbf
input datafile fno=00002 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/undotbs01.dbf
input datafile fno=00006 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/yn.dbf
input datafile fno=00004 name=/u01/app/oracle/product/10.2.0/db_2/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 02-DEC-13
channel ORA_DISK_1: finished piece 1 at 02-DEC-13
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_12_02/o1_mf_nnnd1_TAG20131202T223244_99s6jfdz_.bkp tag=TAG20131202T223244 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting incremental level 1 datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 02-DEC-13
channel ORA_DISK_1: finished piece 1 at 02-DEC-13
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_12_02/o1_mf_ncsn1_TAG20131202T223244_99s6k6o1_.bkp tag=TAG20131202T223244 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 02-DEC-13

RMAN> 

 

4.查看此时的备份文件、关闭数据库、重启数据库

[root@app 2013_12_02]# ll
?昏. 649132
-rw-r----- 1 oracle oinstall   7176192 12-02 22:29 o1_mf_ncsn0_TAG20131202T222739_99s6bvm4_.bkp
-rw-r----- 1 oracle oinstall   7176192 12-02 22:33 o1_mf_ncsn1_TAG20131202T223244_99s6k6o1_.bkp
-rw-r----- 1 oracle oinstall 649576448 12-02 22:29 o1_mf_nnnd0_TAG20131202T222739_99s66wc3_.bkp
-rw-r----- 1 oracle oinstall    114688 12-02 22:33 o1_mf_nnnd1_TAG20131202T223244_99s6jfdz_.bkp
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area  599785472 bytes
Fixed Size            2022632 bytes
Variable Size          251659032 bytes
Database Buffers      343932928 bytes
Redo Buffers            2170880 bytes
Database mounted.

 

5.rman恢复

RMAN> run {
2> allocate channel c1 type disk;
3> restore database;
4> recover database;
5> sql 'alter database open';
6> }

allocated channel: c1
channel c1: sid=156 devtype=DISK

Starting restore at 02-DEC-13

channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/system01.dbf
restoring datafile 00002 to /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/undotbs01.dbf
restoring datafile 00003 to /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/sysaux01.dbf
restoring datafile 00004 to /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/users01.dbf
restoring datafile 00006 to /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/yn.dbf
channel c1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_12_02/o1_mf_nnnd0_TAG20131202T222739_99s66wc3_.bkp
channel c1: restored backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_12_02/o1_mf_nnnd0_TAG20131202T222739_99s66wc3_.bkp tag=TAG20131202T222739
channel c1: restore complete, elapsed time: 00:00:25
Finished restore at 02-DEC-13

Starting recover at 02-DEC-13
channel c1: starting incremental datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/system01.dbf
destination for restore of datafile 00002: /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/undotbs01.dbf
destination for restore of datafile 00003: /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/sysaux01.dbf
destination for restore of datafile 00004: /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/users01.dbf
destination for restore of datafile 00006: /u01/app/oracle/product/10.2.0/db_2/oradata/orcl/yn.dbf
channel c1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_12_02/o1_mf_nnnd1_TAG20131202T223244_99s6jfdz_.bkp
channel c1: restored backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_12_02/o1_mf_nnnd1_TAG20131202T223244_99s6jfdz_.bkp tag=TAG20131202T223244
channel c1: restore complete, elapsed time: 00:00:01

starting media recovery
media recovery complete, elapsed time: 00:00:02

Finished recover at 02-DEC-13

sql statement: alter database open
released channel: c1

RMAN> 

 

6.查询数据

[oracle@app ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Dec 2 22:52:49 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL> select * from t1;
    id  name
---------------------
1 first
2 second
3 rman3
4 rman4

 

 这里说一个我在进行此试验时,遇到的一个另外问题:

   level 1级备份操作后,进行了drop table t1;我以为利用 level  0+level  1 恢复时,rman只恢复到我level  1备份处,t1表的4条数据还是存在的。

 

但,当我这样操作后,进行select × from t1 查询时,发现提示该表不存在。

 

后来仔细想了想,当我利用recover database时,数据库会自动读取redo或者归档文件来进行drop table t1操作的。