Oracle rman异机恢复

  线上库一张表误操作,要求恢复,但不能在原库进行,通过闪回查询已经得知flashback已经不可能了,因为过去太久了所以需要通过rman备份导入另一台机器还原,然后把相关表导出。恢复过程如下: 

C:\oracle\product\11.1.0\db_1\BIN>rman target /
恢复管理器: Release 11.1.0.6.0 - Production on 星期四 11月 7 16:59:58 2013
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
已连接到目标数据库 (未启动)
RMAN> startup nomount
Oracle 实例已启动
系统全局区域总计     501059584 字节
Fixed Size                     2116336 字节
Variable Size                440403216 字节
Database Buffers              50331648 字节
Redo Buffers                   8208384 字节

RMAN> restore controlfile from 'c:\recover\C-4052383007-20131103-03';

启动 restore 于 07-11月-13
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=98 设备类型=DISK


通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:03
输出文件名=C:\ORACLE\ORADATA\QIXIN\CONTROL01.CTL
输出文件名=C:\ORACLE\ORADATA\QIXIN\CONTROL02.CTL
输出文件名=C:\ORACLE\ORADATA\QIXIN\CONTROL03.CTL
完成 restore 于 07-11月-13
RMAN> alter database mount;


使用目标数据库控制文件替代恢复目录
数据库已装载


RMAN> catalog start with 'c:\recover';


搜索与样式 c:\recover 匹配的所有文件
数据库未知文件的列表
=====================================
文件名: C:\recover\C-4052383007-20131103-02
文件名: C:\recover\C-4052383007-20131103-03
文件名: C:\recover\INC0_20131103_AFOO2HT0_1_1.BKP
文件名: C:\recover\INC0_20131103_AIOO2I2J_1_1.BKP
文件名: C:\recover\INC0_20131103_AKOO2I3B_1_1.BKP
是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes
正在编制文件目录...
目录编制完毕


已列入目录的文件的列表
=======================
文件名: C:\recover\C-4052383007-20131103-02
文件名: C:\recover\C-4052383007-20131103-03
文件名: C:\recover\INC0_20131103_AFOO2HT0_1_1.BKP
文件名: C:\recover\INC0_20131103_AIOO2I2J_1_1.BKP
文件名: C:\recover\INC0_20131103_AKOO2I3B_1_1.BKP

RMAN> crosscheck backupset;
RMAN> delete expired backupset;
RMAN> list backupset summary;

备份列表
===============
关键字     TY LV S 设备类型 完成时间   段数 副本数 压缩标记
------- -- -- - ----------- ---------- ------- ------- ---------- ---
19618   B  0  A DISK        03-11月-13 1       1       YES        TAG20131103T220104
19621   B  A  A DISK        03-11月-13 1       1       YES        TAG20131103T220403
19623   B  A  A DISK        03-11月-13 1       1       YES        TAG20131103T220426
19624   B  F  A DISK        03-11月-13 1       1       NO         TAG20131103T220435
19626   B  F  A DISK        03-11月-13 1       1       NO         TAG20131103T223040
RMAN> @c:\recover\tmp\abc.sql
SQL> alter database rename file 'D:\ORACLE\ORADATA\QIXIN\REDO01.LOG' to 'c:\recover\tmp\r1.log';
SQL> alter database rename file 'D:\ORACLE\ORADATA\QIXIN\REDO02.LOG' to 'c:\recover\tmp\r2.log';
SQL> alter database open resetlogs;

C:\oracle\product\11.1.0\db_1\BIN>exp userid=test/test file=c:\recover\sms_mt.dmp buffer=8192000 direct=y rows=y tables=abc1,abc2

主库操作:
F:>imp userid=test/test file=f:\sms.dmp full=y commit=y

abc.sql内容如下

run{
set newname for datafile 1 to 'c:\recover\tmp\SYSTEM01.DBF';
set newname for datafile 2 to 'c:\recover\tmp\SYSAUX01.DBF';
set newname for datafile 3 to 'c:\recover\tmp\UNDOTBS01.DBF';
set newname for datafile 4 to 'c:\recover\tmp\USER01.DBF';
set newname for datafile 5 to 'c:\recover\tmp\EXAMPLE01.DBF';
set newname for datafile 6 to 'c:\recover\tmp\mms_data.DBF';
set newname for datafile 7 to 'c:\recover\tmp\sms_data1.DBF';
set newname for datafile 8 to 'c:\recover\tmp\vblog_1.DBF';
set newname for datafile 9 to 'c:\recover\tmp\crop1.DBF';
set newname for datafile 10 to 'c:\recover\tmp\crop2.DBF';
set newname for datafile 11 to 'c:\recover\tmp\crop3.DBF';
switch datafile all;
restore database;
}


你可能感兴趣的:(Oracle rman异机恢复)