概述
怎么把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:backupCONTROL_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:ORACLEPRODUCT10.2.0ORADATABACKSYSTEM01.DBF
2 D:ORACLEPRODUCT10.2.0ORADATABACKUNDOTBS01.DBF
3 D:ORACLEPRODUCT10.2.0ORADATABACKSYSAUX01.DBF
4 D:ORACLEPRODUCT10.2.0ORADATABACKUSERS01.DBF
5 D:ORACLEPRODUCT10.2.0ORADATABACKTBS_STREAM02.DBF
6 D:ORACLEPRODUCT10.2.0ORADATABACKUSERS02.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:ORACLEPRODUCT10.2.0ORADATABACKSYSTEM01.DBF
--恢复1,2,4
正将数据文件00002还原到D:ORACLEPRODUCT10.2.0ORADATABACKUNDOTBS01.DBF
正将数据文件00004还原到D:ORACLEPRODUCT10.2.0ORADATABACKUSERS01.DBF
通道 ORA_DISK_1:
正在读取备份片段 D:BACKUPBACKUP_3TLPGR8T_1_1
通道 ORA_DISK_1:
已还原备份片段 1
段句柄 =
D:BACKUPBACKUP_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:ARCHLOGARC00038_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:ARCHLOGARC00039_0729788970.001
ORA-00280:
?? 2095552203 (???? 1) ??? #39 ?
ORA-00278:
??????????? 'D:ARCHLOGARC00038_0729788970.001'
ORA-00279:
?? 2095552262 (? 10/03/2010 09:22:48 ??) ???? 1 ????
ORA-00289:
??: D:ARCHLOGARC00040_0729788970.001
ORA-00280:
?? 2095552262 (???? 1) ??? #40 ?
ORA-00278:
??????????? 'D:ARCHLOGARC00039_0729788970.001'
ORA-00308:
???????? 'D:ARCHLOGARC00040_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:ARCHLOGARC00040_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:ARCHLOGARC00040_0729788970.001'
ORA-27041:
unable to open file
OSD-04002:
????????????
O/S-Error:
(OS 2) ??????????????????????
ORA-00308:
cannot open archived log
'D:ARCHLOGARC00040_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>
最后
以上就是单纯手机为你收集整理的oracle11g rman恢复到另一台服务器,怎么把rman备份恢复到另外一台服务器上的全部内容,希望文章能够帮你解决oracle11g rman恢复到另一台服务器,怎么把rman备份恢复到另外一台服务器上所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复