oracle数据库版本一致,均为10.2.0,原服务器和目标服务器的操作系统也都是2008 server
我已经将控制文件,临时文件,日志文件,数据文件在数据库停止的状态下拷贝了出来,目录如下:SQL> select name from v$controlfile;NAME
-------------------------------------------------------------------------Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\CONTROL01.CTL
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\CONTROL02.CTL
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\CONTROL03.CTLSQL> select name from v$tempfile;NAME
--------------------------------------------------------------------------------Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\TEMP01.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZLTOOLSTMP.DBFSQL> select member from v$logfile;MEMBER
---------------------------------------------------------------------Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\REDO03.LOG
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\REDO02.LOG
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\REDO01.LOGSQL> select name from v$datafile;NAME
-------------------------------------------------------Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\SYSTEM01.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\UNDOTBS01.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\SYSAUX01.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\USERS01.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZLTOOLSTBS.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9BASEITEM.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9PATIENT.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9EXPENSE.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9MEDLST.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9DUEREC.DBF
D:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9CISREC.DBFNAME
-------------------------------------------------------Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9EPRLOB.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9EPRDAT.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9CISAUDIT.DBF
D:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9INDEXHIS.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9INDEXCIS.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZLBAK2010.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9BLOODDATA.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9DEVBASE.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9DEVREC.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9DEVUSE.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9INDEXDEV.DBFNAME
-------------------------------------------------------Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9HUMANBASE.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9HUMANINFO.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9HUMANWAGE.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9IFTBASE.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9IFTREC.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9INDEXIFT.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9MTLBASE.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9MTLREC.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9INDEXMTL.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9MEDBASE.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9MEDREC.DBFNAME
-------------------------------------------------------Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9MEDDAY.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9INDEXMDR.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9OPSDATA.DBF
Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9PEISDATA.DBF
D:\TESTORCL\XXXDATABASE\ORADATA\ORCL\ZL9CISREC01.DBF
数据文件有的在Z盘有的在D盘,下边应该怎么办??????才能将冷备的数据恢复。
我查了很多资料,很多情况下,数据都是在oracle的安装的orada的目录下,不适合我这个情况似乎。

解决方案 »

  1.   

    数据文件的路径在控制文件里面有记录
    改一下
    但记住别在open数据库了,防止scn不一致
      

  2.   

     控制文件
    Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\CONTROL01.CTL
    Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\CONTROL02.CTL
    Z:\TESTORCL\XXXDATABASE\ORADATA\ORCL\CONTROL03.CTL
    根本不能打开,怎么修改的?兄弟,另外,to linwaterbin,你说的打开数据库是原服务器的,还是现在的服务器?
      

  3.   

    如果可能,数据文件的路径与原服务器上的相同,修改 spfile,使 control_files 指向拷贝过来的控制文件的所在路径
      

  4.   

    是不是在创建一个数据库之后,然后直接修改spfile里边的控制文件的路径就ok了我试试
      

  5.   

    1  更改pfile控制文件路径(如果控制文件路径有变);
    2  database mount后,alter database datafile rename 到新的路径;
    3  如果你的冷备份没问题,这时应该能够open
      

  6.   

    我现在已经open了,可我如何使用账号和密码访问我里边的数据呢,需要单独创建账户????来确认我的数据是不是已经恢复成功
      

  7.   

    我是按照下边的步骤走的。
    sqlplus /nolog
    connect /as sysdba;
    shutdown immediate;
    startup mount;
    alter database rename file '' to '';
    alter database rename file '' to '';
    alter database rename file '' to '';//一共修改了三个控制文件
    alter database open;//成功;
    问题是我发现并没有在原服务器上边的账户。
    select * from all_users;
      

  8.   


    控制文件的路径记录在 spfile 中,数据库文件的路径记录在控制文件中。修改 spfile,在 startup nomount 状态下
    alter system set control_files=xxx scope=spfile;修改控制文件中数据文件路径, 在 startup mount 状态下:
    alter database rename file ... ...
      

  9.   

    这有是一个问题,原服务器中数据库的数据文件有很多个,而新建的似乎没几个,都来rename,多余的咋办?若添加,如何添加,是不是控制文件和数据文件都修改后就ok了,日志文件和临时文件呢?