试验计划:先做一个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重新备份的。因为该备份是以后数据恢复的一个起点。
浙公网安备 33010602011771号