oracle11g rman恢复到另一台服务器,怎么把rman备份恢复到另外一台服务器上

怎么把rman备份恢复到另外一台服务器上(有恢复目录,恢复部分文件)?

数据库的状况

SQL> CREATE TABLE T_DROP(A INT);

Table

created

SQL> BEGIN

2

FOR A IN 1..10000 LOOP

3

INSERT INTO T_DROP VALUES(A);

4 END

LOOP;

5

END

6

;

7

/

PL/SQL

procedure successfully completed

SQL> COMMIT;

Commit

complete

SQL> SELECT SYSDATE FROM DUAL;

SYSDATE

-----------

2010/10/3

9

SQL> SELECT TO_CHAR(SYSDATE,'YYYYMMDD

HH24:MI:SS') FROM DUAL;

TO_CHAR(SYSDATE,'YYYYMMDDHH24:

------------------------------

20101003

09:14:56

SQL> drop table t_drop;

Table

dropped

SQL>

SQL> SELECT TO_CHAR(SYSDATE,'YYYYMMDD

HH24:MI:SS') FROM DUAL;

TO_CHAR(SYSDATE,'YYYYMMDDHH24:

------------------------------

20101003

09:26:58

--不小心

在 20101003 09:26:58

drop了表,我们需要把它恢复过来

我们有rman备份,有归档,把他恢复到另外一台计算机上,我们知道t_drop保存在数据文件user1中,也就是数据文件4中。

1.准备工作

安装一个相同版本的数据库,sid一样,安装目录,数据文件目录一样(最好,否则麻烦一些)

安装完毕后,删除数据文件,控制文件,在线日志文件,保留参数文件,密码文件

2.拷贝rman的

控制文件备份到异机上,启动数据库到nomount,恢复控制文件

--操作步骤:

SQL> startup nomount;

ORACLE 例程已经启动。

Total

System Global Area 285212672

bytes

Fixed

Size

1296284 bytes

Variable

Size

180357220 bytes

Database

Buffers

96468992 bytes

Redo

Buffers

7090176

bytes

SQL> select * from dual;

ADDR

INDX

INST_ID DU

--------

---------- ---------- --

03854514

0

1 X

SQL> declare

2

devtype varchar2(256);

3

done boolean;

4

begin

5

devtype:=dbms_backup_restore.deviceallocate(NULL);

6

dbms_backup_restore.restoresetdatafile;

7

dbms_backup_restore.restorecontrolfileto('D:\CONTROL001.CTL');

8

dbms_backup_restore.restorebackuppiece('d:\backup\CONTROL_C-4048592102-20101003-01',done=>done);

9

sys.dbms_backup_restore.deviceDeallocate;

10 end;

11 /

PL/SQL 过程已成功完成。

发现生成了一个控制文件D:\CONTROL001.CTL,复制这个控制文件到你的数据文件目录(参数文件里记录的控制文件的目录)

--然后mount 数据库

SQL> alter database mount;

数据库已更改。

SQL> select file#,error from

v$recover_file;

FILE# ERROR

----------

-----------------------------------------------------------------

1 FILE NOT FOUND

--现在还没有数据文件

2 FILE NOT FOUND

3 FILE NOT FOUND

4 FILE NOT FOUND

5 FILE NOT FOUND

6 FILE NOT FOUND

已选择6行。

SQL> select file#,name from

v$datafile;

FILE# NAME

----------

-----------------------------------------------------------

1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\BACK\SYSTEM01.DBF

2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\BACK\UNDOTBS01.DBF

3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\BACK\SYSAUX01.DBF

4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\BACK\USERS01.DBF

5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\BACK\TBS_STREAM02.DBF

6 D:\ORACLE\PRODUCT\10.2.0\ORADATA\BACK\USERS02.DBF

已选择6行。

3.用rman恢复数据文件

1,2,4 ,3,5,6数据文件不恢复

恢复管理器: Release

10.2.0.4.0 - Production on 星期日 10月

3 10:37:24 2010

Copyright

(c) 1982, 2007, Oracle. All rights

reserved.

已连接到目标数据库: BACK

(DBID=4048592102, 未打开)

连接到恢复目录数据库

restore datafile

1,2,4;

RMAN>

启动 restore

于 03-10月-10

启动 implicit crosscheck

backup 于 03-10月-10

分配的通道:

ORA_DISK_1

通道 ORA_DISK_1: sid=155

devtype=DISK

分配的通道:

ORA_DISK_2

通道 ORA_DISK_2: sid=154

devtype=DISK

已交叉检验的 44

对象

完成 implicit crosscheck

backup 于 03-10月-10

启动 implicit crosscheck

copy 于 03-10月-10

使用通道 ORA_DISK_1

使用通道 ORA_DISK_2

完成 implicit crosscheck

copy 于 03-10月-10

搜索恢复区中的所有文件

正在编制文件目录...

没有为文件编制目录

使用通道 ORA_DISK_1

使用通道 ORA_DISK_2

通道 ORA_DISK_1:

正在开始恢复数据文件备份集

通道 ORA_DISK_1:

正在指定从备份集还原的数据文件

正将数据文件00001还原到D:\ORACLE\PRODUCT\10.2.0\ORADATA\BACK\SYSTEM01.DBF

--恢复1,2,4

正将数据文件00002还原到D:\ORACLE\PRODUCT\10.2.0\ORADATA\BACK\UNDOTBS01.DBF

正将数据文件00004还原到D:\ORACLE\PRODUCT\10.2.0\ORADATA\BACK\USERS01.DBF

通道 ORA_DISK_1:

正在读取备份片段 D:\BACKUP\BACKUP_3TLPGR8T_1_1

通道 ORA_DISK_1:

已还原备份片段 1

段句柄 =

D:\BACKUP\BACKUP_3TLPGR8T_1_1 标记 =

TAG20101003T092133

通道 ORA_DISK_1:

还原完成,

用时: 00:00:56

完成 restore

于 03-10月-10

RMAN>

sql

语句: alter database

datafile 3 offline drop--offline,3,5,6

数据文件

RMAN>

sql

语句: alter database

datafile 5 offline drop

RMAN>

sql

语句: alter database

datafile 6 offline drop

RMAN>

recover

database until time "to_date('20101003 09:25:56','yyyy-mm-dd

hh24:mi:ss')";

启动 recover

于 03-10月-10

使用通道 ORA_DISK_1

使用通道 ORA_DISK_2

MAN-00571:

===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS

===============

RMAN-00571:

===========================================================

RMAN-03002: recover 命令 (在

10/03/2010 10:43:23

上) 失败

RMAN-06094: 数据文件3必须重新存储--报错了,rman数据3也要恢复,但是我们不想恢复它

--用sqlplus进行恢复

SQL> recover database until time '20101003

09:25:56';

ORA-00283:

??????????

ORA-01610:

?? BACKUP CONTROLFILE ??????????

SQL> recover database until time '20101003

09:25:56' using backup controlfile; --恢复数据库到删除前的那一刻

ORA-00279:

?? 2095552140 (? 10/03/2010 09:20:11 ??) ???? 1 ????

ORA-00289:

??: D:\ARCHLOG\ARC00038_0729788970.001

ORA-00280:

?? 2095552140 (???? 1) ??? #38 ?

指定日志:

{=suggested | filename | AUTO |

CANCEL}

auto

ORA-00279:

?? 2095552203 (? 10/03/2010 09:21:28 ??) ???? 1 ????

ORA-00289:

??: D:\ARCHLOG\ARC00039_0729788970.001

ORA-00280:

?? 2095552203 (???? 1) ??? #39 ?

ORA-00278:

??????????? 'D:\ARCHLOG\ARC00038_0729788970.001'

ORA-00279:

?? 2095552262 (? 10/03/2010 09:22:48 ??) ???? 1 ????

ORA-00289:

??: D:\ARCHLOG\ARC00040_0729788970.001

ORA-00280:

?? 2095552262 (???? 1) ??? #40 ?

ORA-00278:

??????????? 'D:\ARCHLOG\ARC00039_0729788970.001'

ORA-00308:

???????? 'D:\ARCHLOG\ARC00040_0729788970.001'

ORA-27041:

??????

OSD-04002:

????????????

O/S-Error:

(OS 2) ??????????????????????

SQL> alter session set

nls_language=american;

Session

altered.

SQL> recover database until time '20101003

09:25:56' using backup controlfile;

ORA-00279:

change 2095552262 generated at 10/03/2010 09:22:48 needed for

thread

1

ORA-00289:

suggestion : D:\ARCHLOG\ARC00040_0729788970.001

ORA-00280:

change 2095552262 for thread 1 is in sequence #40

Specify

log: {=suggested | filename |

AUTO | CANCEL}

auto

ORA-00308:

cannot open archived log

'D:\ARCHLOG\ARC00040_0729788970.001'

ORA-27041:

unable to open file

OSD-04002:

????????????

O/S-Error:

(OS 2) ??????????????????????

ORA-00308:

cannot open archived log

'D:\ARCHLOG\ARC00040_0729788970.001'

ORA-27041:

unable to open file

OSD-04002:

????????????

O/S-Error:

(OS 2) ??????????????????????

SQL> alter database open

resetlogs;

--打开

Database

altered.

SQL> conn test/test

已连接。

SQL> select count(*) from t_drop;

COUNT(*)

----------

10000

--表数据回来了,导出数据,导入到原来的数据库就可以

SQL>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值