1.拷贝数据文件
2.拷贝init(sid).ora文件
(在另外机器)
3.创建控制文件
4.修改数据文件路径:如  alter database rename file '/oracle/oradata/lz/system.dbf' to '/oracle/lz/system.dbf';
5.打开数据库

解决方案 »

  1.   

    手工创建的脚本可以看看这里http://www.sosdb.com/ 里面有控制文件损坏情况下成功的恢复
    的例子。
      

  2.   

    可以现在远程建立standby数据库,然后在active数据库,最后open
    1.拷贝数据文件
    2.拷贝init(sid).ora文件
    (在另外机器)
    3.创建控制文件:如:alter database  create standby  controlfile as 'sty_cc.ctl' ;
    4.修改数据文件路径:如  alter database rename file '/oracle/oradata/lz/system.dbf' to '/oracle/lz/system.dbf';
    5.打开数据库
      

  3.   

    最近刚好用冷备方式做过一次数据库迁移,提供一下Solaris或AIX系统的步骤,设原来的机器为A,新机器为B,步骤如下:
    1.在B上建立与A上相同的操作系统环境,相同的文件系统
    2.修改B上用户的.profile文件,设置ORACLE_BASE,ORACLE_HOME,ORACLE_SID,NLS_LANG等变量(与机器A相同)
    3.在B上安装Oracle软件,注意安装位置和选择的组件与机器A上的oracle环境相同
    4.在A上下库,拷贝以下文件,注意所有文件路径必须和原来机器保持一致:
    所有数据文件,redo文件,控制文件
    $ORACLE_HOME/dbs下的initSID.ora或spfileSID.ora文件和密码文件orapwSID,以及lkSID(该项不能确定是否一定需要)
    $ORACLE_HOME/network/admin下的tnsnames.ora文件(在该文件中需要修改的主机名或者IP)
    oratab文件,如果是AIX系统一般在/etc下,Solaris系统一般在/var/opt/oracle下,该文件实际上包含了oracle建实例时的注册信息.
    admin文件夹,里面包含了bdump,cdump和udump
    5.起数据库和listener,验证一下数据库是否可用如果是windows系统,大致步骤应该相同,但是拷oratab文件的步骤有些不同.我不清楚在windows机器上oracle建库时要修改哪些注册表信息,相信把这些信息添加进去应该就没问题了.