1235

何处是我家!

导航

oracle:rman恢复----通过时间set until time

Posted on 2013-12-02 22:15  yn1235  阅读(4912)  评论(0)    收藏  举报

 

   试验计划:先做一个0级备份,再创建一个表,插入几条数据,最后删除表,然后通过rman把该表的数据恢复。

 

试验环境:在归档模式,oracle10.2.0.1

 

开始试验:

1.rman level 0备份

RMAN> backup incremental level 0 database;

Starting backup at 02-DEC-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=154 devtype=DISK
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_TAG20131202T211658_99s22c7o_.bkp tag=TAG20131202T211658 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:25
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_TAG20131202T211658_99s252by_.bkp tag=TAG20131202T211658 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:05
Finished backup at 02-DEC-13

2.创建表

SQL> create table t1(id int,name varchar2(20));

Table created.

SQL> insert into t1 values(1,'first');

1 row created.

SQL> commit;

SQL> insert into t1 values(2,'second');

1 row created.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

SQL> select * from t1;

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

3.查询当前系统时间

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
-------------------
2013-12-02 21:41:55

 

4.删除表,关闭数据库,重启数据库

SQL> drop table t1;

Table dropped.

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          243270424 bytes
Database Buffers      352321536 bytes
Redo Buffers            2170880 bytes
Database mounted.
SQL> select status from v$instance;

STATUS
------------
MOUNTED

5.rman恢复

RMAN> run{
2> allocate channel c1 type disk;
3> set until time "to_date('2013-12-02 21:41:55','yyyy-mm-dd hh24:mi:ss')";
4> restore database;
5> recover database;
6> sql 'alter database open resetlogs';
7> }

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

executing command: SET until clause

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_TAG20131202T211658_99s22c7o_.bkp
channel c1: restored backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_12_02/o1_mf_nnnd0_TAG20131202T211658_99s22c7o_.bkp tag=TAG20131202T211658
channel c1: restore complete, elapsed time: 00:00:45
Finished restore at 02-DEC-13

Starting recover at 02-DEC-13

starting media recovery

archive log thread 1 sequence 56 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2013_12_02/o1_mf_1_56_99s2jvny_.arc
archive log thread 1 sequence 57 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2013_12_02/o1_mf_1_57_99s2lpbk_.arc
archive log thread 1 sequence 58 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2013_12_02/o1_mf_1_58_99s3d5ph_.arc
archive log thread 1 sequence 1 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2013_12_02/o1_mf_1_1_99s3j6fg_.arc
archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2013_12_02/o1_mf_1_56_99s2jvny_.arc thread=1 sequence=56
archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2013_12_02/o1_mf_1_57_99s2lpbk_.arc thread=1 sequence=57
archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2013_12_02/o1_mf_1_58_99s3d5ph_.arc thread=1 sequence=58
media recovery complete, elapsed time: 00:00:02
Finished recover at 02-DEC-13

sql statement: alter database open resetlogs
released channel: c1

RMAN>    

 

6.查询被删除的数据

SQL> select * from t1;

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

SQL> 

 

7.重新备份数据库

   在生产环境中,不完全恢复后,是要用rman重新备份的。因为该备份是以后数据恢复的一个起点。