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

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

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

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

 

开始试验:

1. rman level 0级备份

oracle:rman恢复----通过增量备份来恢复
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
oracle:rman恢复----通过增量备份来恢复

 

2.插入相关表数据

oracle:rman恢复----通过增量备份来恢复
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
>
oracle:rman恢复----通过增量备份来恢复

3.rman level  0级备份

oracle:rman恢复----通过增量备份来恢复
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
>
oracle: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
oracle:rman恢复----通过增量备份来恢复
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.

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

 

5.rman恢复

oracle: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
>
oracle:rman恢复----通过增量备份来恢复

 

6.查询数据

oracle:rman恢复----通过增量备份来恢复
[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
oracle:rman恢复----通过增量备份来恢复

 

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

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

 

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

 

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