rman使用镜像切换实现快速恢复

来源:互联网 发布:宝宝启蒙教育视频软件 编辑:程序博客网 时间:2024/06/05 15:36
本文描述:rman使用镜像备份文件进行快速恢复所丢失的文件
试验过程:
(1)登录sqlplus查看相应信息
C:\Users\Administrator>sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期五 6月 16 14:57:39 2017Copyright (c) 1982, 2010, Oracle.  All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select name from v$tablespace;NAME------------------------------------------------------------SYSTEMSYSAUXUNDOTBS1USERSTEMPTT6 rows selected.SQL> col name for a50;SQL> select file#, name from v$datafile;     FILE# NAME---------- --------------------------------------------------         1 F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF         2 F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF         3 F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF         4 F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF         5 F:\ORADATA\TT01.DBF
(2)使用镜像备份5号文件
C:\Users\Administrator>rman target /Recovery Manager: Release 11.2.0.1.0 - Production on 星期五 6月 16 15:03:00 2017Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.connected to target database: ORCL (DBID=1474525861)RMAN> backup as copy datafile 5;Starting backup at 16-6月 -17using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=132 device type=DISKchannel ORA_DISK_1: starting datafile copyinput datafile file number=00005 name=F:\ORADATA\TT01.DBFoutput file name=F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\DATAFILE\O1_MF_TT_DN70OL9K_.DBF tag=TAG20170616T150313 RECID=1 STAchannel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01Finished backup at 16-6月 -17RMAN>
(3)刻意删除5号文件(为了模拟文件丢失)
Window直接删除时会显示文件正在使用,因此使用360删除,哦...好强势!!
(4) 用Scott用户在tt表空间上建表,报错
SQL> conn scott/tigerConnected.SQL> create table t2 tablespace tt as select * from emp;create table t2 tablespace tt as select * from emp                                               *ERROR at line 1:ORA-01116: 打开数据库文件 5 时出错ORA-01110: 数据文件 5: 'F:\ORADATA\TT01.DBF'ORA-27041: 无法打开文件OSD-04002: unable to open fileO/S-Error: (OS 2) ????????????????SQL>
(5) 将文件5置为offline状态,以便进行快速恢复切换
SQL> conn / as sysdbaConnected.SQL> alter database datafile 5 offline;Database altered.SQL>
(6)切换恢复文件5
RMAN> switch datafile 5 to copy;datafile 5 switched to datafile copy "F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\DATAFILE\O1_MF_TT_DN70OL9K_.DBF"RMAN> recover datafile 5;Starting recover at 16-6月 -17using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:00Finished recover at 16-6月 -17RMAN>
(7) 将文件5置为online状态,查看恢复结果
SQL> alter database datafile 5 online;Database altered.SQL> conn scott/tigerConnected.SQL> create table t2 tablespace tt as select * from emp;  --可以创建,文件2已经恢复成功Table created.SQL> conn / as sysdbaConnected.SQL> col name for a50;SQL> select file#, name from v$datafile;     FILE# NAME---------- --------------------------------------------------         1 F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF         2 F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF         3 F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF         4 F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF         5 F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\DATA           FILE\O1_MF_TT_DN70OL9K_.DBF          --此时文件5对应的数据文件位置,在恢复区SQL>
恢复成功!

矫情一下:若感觉恢复过程的文件5,看着位置怪怪的,可以将其改为原来的位置
RMAN> backup as copy datafile 5 format 'f:\oradata\tt01.dbf';Starting backup at 16-6月 -17using channel ORA_DISK_1channel ORA_DISK_1: starting datafile copyinput datafile file number=00005 name=F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\DATAFILE\O1_MF_TT_DN70OL9K_.DBFoutput file name=F:\ORADATA\TT01.DBF tag=TAG20170616T160629 RECID=2 STAMP=946829190channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01Finished backup at 16-6月 -17RMAN> sql 'alter database datafile 5 offline';sql statement: alter database datafile 5 offlineRMAN> switch datafile 5 to copy;datafile 5 switched to datafile copy "F:\ORADATA\TT01.DBF"RMAN> recover datafile 5;Starting recover at 16-6月 -17using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:00Finished recover at 16-6月 -17RMAN> sql 'alter database datafile 5 online';sql statement: alter database datafile 5 onlineRMAN>
查询结果:
SQL> select file#, name from v$datafile;     FILE# NAME---------- --------------------------------------------------         1 F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF         2 F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF         3 F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF         4 F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF         5 F:\ORADATA\TT01.DBF  --原来的位置SQL>
试验完毕!
原创粉丝点击