本人oracle菜鸟一枚,现在碰到一个问题需要解决。
手头有一份从linux中拷贝出来的完整的oracle数据库文件,控制文件,日志文件和数据文件都在。oracle版本是10g。
我需要读取其中的数据库表信息。于是我搭建了一个redhat系统,并安装了oracle 11g。
但是我应该怎么做才能读取这个数据库文件里面的信息呢?
我尝试新建了一个实例ORCL,将那个数据库文件全部拷贝进去然后启动数据库,但是这样子数据库就打不开了。使用了alter database mount没有用。
现在很焦虑,希望高手解答,谢谢!!!

解决方案 »

  1.   

    11g的软件
    10g的数据库
    你需要升级后才能够open的
      

  2.   


    既然手头的一份从linux中拷贝出来的完整的oracle数据库文件,控制文件,日志文件和数据文件都在,且是Oracle 10g 的,那么你就应该安装一样的数据库版本(10g),安装的时候,其实例名、ORACLE_HOME目录、ORACLE_SID等参数与源数据库的一模一样,然后将相应的文件放到相应的位置,即可启动数据库!(当然:如果目标库的内存比源数据库要少,那么要注意调整内存相关的参数为合适值,否则有可能报错)当然:还有一个“初始化参数文件”或者叫做pfile文件或spfile文件也应该有(即源机器的参数文件也应该拷贝到目标机器的相应位置)
      

  3.   


    还有:其操作系统平台最好跟源数据库的一模一样,当然,同样是linux的操作系统,小版本号可以不一样。
    但:不允许源数据库是基于Windows平台,而目标数据库是linux平台,这个时候,直接拷贝这些文件到目标机器去恢复这条路就行不通了!
      

  4.   

    原数据库文件的完整路径是 /opt/oracle/oradata/ORCL
    以下是文件截图pfile在这个路径下 opt/oracle/admin/ORCL/pfile 你的意思是我在新的linux环境下安装时严格按照这个路径并且将这两个文件夹的文件全部复制到相应位置就可以了对吗?
      

  5.   

    expdp/impdp也可以啊
    新手的话,还是先安装,然后导入吧,这样安全,在加上10g和11g特性相差比较大,主要是业务运行,你们能让一个新手搞这些活儿,业务应该运行停机吧
      

  6.   

    这个和业务运行倒也没关系,新手确实是的。
    我要做的就是读取原数据库文件中的数据表信息,但是现在已经没有办法对原有服务器进行操作,所以expdp/impdp是不可能实现了,有的只有拷贝出来的文件,所以需要另行搭建环境。
    如果我在自己的linux环境下安装oracle 10g是可以读取出来的,是这样吗?
      

  7.   


    最简单的方法是使用dbua处理,不过我感觉你不是很熟悉,处理起来可能有难度