还原不同位置的数据库
        机器a: 
select instance_name from v$instance; 
select name from v$database; 
select name from v$datafile; 
查询日志模式: 
archive log list; 
shutdown immediate; 
startup mount; 
把日志改为归档模式: 
alter database archivelog; 
alter database open; 
alter system archive log current; 
select name from v$archived_log; 
打开控制文件跟踪: 
alter database backup controlfile to trace; 
查看跟踪文件位置: 
show parameter user_dump_dest 
cmd: 
set oracle_sid=orcl 
rman target sys/abc 
host md c:\back; 
run 
{ 
backup database; 
format 'c:\back\%d_%s_%t_full.bak'; 
} 
select file#,name from v$datafile; 
传送以下文件到机器b: 
c:\back 
d:\oracle\product\10.2.0\admin\orcl 
create controlfile set database orcl resetlogs archivelog 
maxlogfiles 16 
maxlogmembers 3 
maxdatafiles 100 
maxinstances 8 
maxloghistory 292 
logfile 
group 1 'e:\oracle\product\10.2.0\oradata\orcl\redo01.log' size 50m, 
group 2 'e:\oracle\product\10.2.0\oradata\orcl\redo02.log' size 50m, 
group 3 'e:\oracle\product\10.2.0\oradata\orcl\redo03.log' size 50m 
-- standby logfile 
datafile 
'e:\oracle\product\10.2.0\oradata\orcl\system01.dbf', 
'e:\oracle\product\10.2.0\oradata\orcl\undotbs01.dbf', 
'e:\oracle\product\10.2.0\oradata\orcl\sysaux01.dbf', 
'e:\oracle\product\10.2.0\oradata\orcl\users01.dbf', 
'e:\oracle\product\10.2.0\oradata\orcl\xm' 
character set zhs16gbk
机器b: 
创建要恢复oracle的目录 
e:\oracle\product\10.2.0\oradata\orcl 
e:\oracle\product\10.2.0\admin 
e:\oracle\product\10.2.0\falsh_recovery_area 
把收到的文件夹orcl放到e:\oracle\product\10.2.0\admin 
拷贝 
e:\oracle\product\10.2.0\admin\orcl\pfile中的参数文件到自己真实数据库db_1\database文件夹中,并改名为initorcl.ora 
打开initorcl.ora 
把里面的路径改为真实oracle数据库的位置 
d:\替换为e:\ 
cmd1: 
set oracle_sid=orcl 
oracle orcl 
等到提示ctrl+c 
cmd2: 
set oracle_sid=orcl 
sqlplus / as sysdba 
startup nomount; 
cmd3: 
set oracle_sid=orcl 
rman target sys/abc 
restore controlfile from 'c:\back\orcl_2_20090414_full.bak'; 
cmd2: 
alter database mount; 
cmd3: 
run{ 
set newname for datafile 1 to 'e:\oracle\product\10.2.0\oradata\orcl\system01.dbf'; 
set newname for datafile 2 to 'e:\oracle\product\10.2.0\oradata\orcl\undotbs01.dbf'; 
set newname for datafile 3 to 'e:\oracle\product\10.2.0\oradata\orcl\sysaux01.dbf'; 
set newname for datafile 4 to 'e:\oracle\product\10.2.0\oradata\orcl\users01.dbf'; 
set newname for datafile 5 to 'e:\oracle\product\10.2.0\oradata\orcl\xm'; 
restore database; 
switch datafile all; 
} 
cmd2: 
select name from v$database; 
shutdown immediate; 
startup mount; 
alter database backup controlfile to trace; 
找到跟踪文件: 
重做控制文件:把里面的路径改为正确路径: 
d:\改为 e:\ 
shutdown immediate; 
startup nomount; 
执行生成控制文件的语句;执行钱必须先删除.ctl的文件 
alter database open resetlogs; 
select name from v$database; 
select member from v$logfile;
   
 
   