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

本文描述:rman使用镜像备份文件进行快速恢复所丢失的文件
试验过程:
(1)登录sqlplus查看相应信息
C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 6月 16 14:57:39 2017

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select name from v$tablespace;

NAME
------------------------------------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
TT

6 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 2017

Copyright (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月 -17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=132 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=F:\ORADATA\TT01.DBF
output file name=F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\DATAFILE\O1_MF_TT_DN70OL9K_.DBF tag=TAG20170616T150313 RECID=1 STA
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 16-6月 -17

RMAN>
(3)刻意删除5号文件(为了模拟文件丢失)
Window直接删除时会显示文件正在使用,因此使用360删除,哦...好强势!!
(4) 用Scott用户在tt表空间上建表,报错
SQL> conn scott/tiger
Connected.
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 file
O/S-Error: (OS 2) ????????????????

SQL>
(5) 将文件5置为offline状态,以便进行快速恢复切换
SQL> conn / as sysdba
Connected.
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月 -17
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:00

Finished recover at 16-6月 -17

RMAN>
(7) 将文件5置为online状态,查看恢复结果
SQL> alter database datafile 5 online;

Database altered.

SQL> conn scott/tiger
Connected.

SQL> create table t2 tablespace tt as select * from emp;  --可以创建,文件2已经恢复成功

Table created.

SQL> conn / as sysdba
Connected.
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月 -17
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=F:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\DATAFILE\O1_MF_TT_DN70OL9K_.DBF
output file name=F:\ORADATA\TT01.DBF tag=TAG20170616T160629 RECID=2 STAMP=946829190
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 16-6月 -17

RMAN> sql 'alter database datafile 5 offline';

sql statement: alter database datafile 5 offline

RMAN> switch datafile 5 to copy;

datafile 5 switched to datafile copy "F:\ORADATA\TT01.DBF"

RMAN> recover datafile 5;

Starting recover at 16-6月 -17
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:00

Finished recover at 16-6月 -17

RMAN> sql 'alter database datafile 5 online';

sql statement: alter database datafile 5 online

RMAN>
查询结果:
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>
试验完毕!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sky@sea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值