RMAN备份与恢复(6)——基于时间的不完全恢复!

来源:互联网 发布:注销阿里云账户 编辑:程序博客网 时间:2024/04/29 03:16

必须注意:不完全恢复必须是数据库级别的。基于时间的不完全恢复在用户误删除、误截断表时可以使用。


首先模拟数据库的故障,删除一个数据文件,然后在mount上数据库。

[oracle@linux oracle]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';[oracle@linux oracle]$ sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on 星期二 10月 18 05:07:51 2011Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.SQL> conn /as sysdba已连接。SQL> select sysdate from dual;SYSDATE-------------------2011-10-18 05:08:04SQL> select file_name from dba_data_files;FILE_NAME------------------------------------------------------------/u01/app/oracle/oradata/orcl/users01.dbf/u01/app/oracle/oradata/orcl/sysaux01.dbf/u01/app/oracle/oradata/orcl/undotbs01.dbf/u01/app/oracle/oradata/orcl/system01.dbf/u01/app/oracle/oradata/orcl/tb1.dbfSQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbfSQL> shutdown abortORACLE 例程已经关闭。SQL> startup mountORACLE 例程已经启动。Total System Global Area  167772160 bytesFixed Size                  1266392 bytesVariable Size              88083752 bytesDatabase Buffers           75497472 bytesRedo Buffers                2924544 bytes数据库装载完毕。SQL> alter database open;alter database open*第 1 行出现错误:ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件ORA-01110: 数据文件 5: '/u01/app/oracle/oradata/orcl/tb1.dbf'


现在使用基于时间的恢复来恢复数据库

[oracle@linux oracle]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';[oracle@linux oracle]$ rman target /恢复管理器: Release 10.2.0.4.0 - Production on 星期二 10月 18 05:08:54 2011Copyright (c) 1982, 2007, Oracle.  All rights reserved.已连接到目标数据库: ORCL (DBID=1292118315, 未打开)RMAN> run {2> set until time='2011-10-18 05:08:04';3> restore database;4> recover database;5> alter database open resetlogs; }正在执行命令: SET until clause使用目标数据库控制文件替代恢复目录启动 restore 于 2011-10-18 05:10:18分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=155 devtype=DISK通道 ORA_DISK_1: 正在开始恢复数据文件备份集通道 ORA_DISK_1: 正在指定从备份集还原的数据文件正将数据文件00001还原到/u01/app/oracle/oradata/orcl/system01.dbf正将数据文件00002还原到/u01/app/oracle/oradata/orcl/undotbs01.dbf正将数据文件00003还原到/u01/app/oracle/oradata/orcl/sysaux01.dbf正将数据文件00004还原到/u01/app/oracle/oradata/orcl/users01.dbf正将数据文件00005还原到/u01/app/oracle/oradata/orcl/tb1.dbf通道 ORA_DISK_1: 正在读取备份片段 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_18/o1_mf_nnndf_TAG20111018T045948_79s5t51d_.bkp通道 ORA_DISK_1: 已还原备份片段 1段句柄 = /u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_18/o1_mf_nnndf_TAG20111018T045948_79s5t51d_.bkp 标记 = TAG20111018T045948通道 ORA_DISK_1: 还原完成, 用时: 00:00:36完成 restore 于 2011-10-18 05:10:56启动 recover 于 2011-10-18 05:10:57使用通道 ORA_DISK_1正在开始介质的恢复介质恢复完成, 用时: 00:00:05完成 recover 于 2011-10-18 05:11:03数据库已打开


最后可以看见数据库已经是open状态拉

SQL> select status from v$instance;STATUS------------OPEN