关于数据库冷备份还原到其他实例的有关问题

关于数据库冷备份还原到其他实例的问题
我将一个数据库冷备份(实例名orcl),现在需要把这个库还原到另外一台机器上,因这台机上已经有了实例名为orcl的数据库,现在我想把原来这个实例名为orcl的数据库还原到新机器上实例名为orclnew的数据库上,具体该怎么操作,望大家指点下!
------解决方案--------------------
没有动手做过,你可以试验一下 。 
1. 在新机器上用dbca 创建 orclnew的数据库
2.停止orclnew中数据库服务,把orclnew 中的 控制文件,日志文件,数据文件全删掉
3.拷贝你冷备份的文件到orclnew中
3.重建控制文件,应用数据文件和日志文件。 
4.启动。 
只是我不知道数据文件里面有没有记录oracle的oracle_sid信息, 如果有的话,估计上面就不成功了。 
------解决方案--------------------
不知道你是windows还是linux,不过大概的原理相同.
大概就是修改参数文件,重建控制文件,然后启动就可以了.
以下是以linux为例:
PCA:用来准备的数据库服务器
PCB:将还原的数据库服务器
--PCA
1.在sqlplus 下create pfile from spile;产生参数文件,
修改参数文件名的为initorclnew.ora,
打开initorclnew.ora,除了db_name=orcl不改,其它所以的orcl替换成orclnew
加入*.db_unique_name=orclnew这行.
2.在sqlplus下alter database backup controlfile to trace;产生重建控制文件的代码.
3.复制 initorclnew.ora到PCB的$ORACLE_HOME/dbs
复制数据文件到跟踪控制文件中指定的目录
--PCB
打开 initorclnew.ora,根据参数中的路径,新建没有的文件夹
然后ORACLE_SID=orclnew
sqlplus / as sysdba
startup nomount;
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u02/oradata/orclnew/redo01.log'  SIZE 50M,
  GROUP 2 '/u02/oradata/orclnew/redo02.log'  SIZE 50M,
  GROUP 3 '/u02/oradata/orclnew/redo03.log'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  '/u02/oradata/orclnew/system01.dbf',
  '/u02/oradata/orclnew/undotbs01.dbf',
  '/u02/oradata/orclnew/sysaux01.dbf',
  '/u02/oradata/orclnew/users01.dbf',
  '/u02/oradata/orclnew/example01.dbf'
CHARACTER SET ZHS16GBK
;
alter database open;
就可以了.



------解决方案--------------------
两个实例共存只要区分好sid就可以了。而且修改很简单,只要将对应的参数文件名称、环境变量、密码文件改名即可
你这里的rman还原除了修改sid以外,还涉及到路径的转换,以免和原实例的数据文件冲突

建议你将新机器上的orcl数据库的实例名改成orclnew,并将目录改名,然后再还原orcl库。操作会简单得多