oracle 实例正在初始化或者关闭在连接oracle数据库的时候出现这个错误,环境是solaris。原因可能是我把一个dbf文件移走导致的。请问这个问题该怎么解决?谢谢!

解决方案 »

  1.   

    你只移走了dbf文件,没改控制文件?
    请你们的DBA出马吧,自己不要瞎折腾了。
      

  2.   

    你只移走了dbf文件,没改控制文件? 
      

  3.   


    楼主可以先看下alert文件,确实下是否是这个原因导致的错误,在把移走的文件在还原后在重启下看看。 Oracle 的文件都是位置都是写在控制文件里的,不可随意移动。 
      

  4.   

    用sys可以登录,但用system的时候系统就报了这个错误了。因为我就对数据库做了移动dbf文件的操作,数据库就挂了,所以应该是这个的原因。现在在家里没有Solaris环境,单位的环境也不能轻易试验啊,试一下环境估计就瘫痪了。。
    恢复数据库怎么恢复呢?新手,请各位多多指教。谢谢!
      

  5.   


    用sysdba登录,是因为sysdba不需要数据库open,而system登录需要到dba_users表里进行校验,所以必须数据库open你可以sysdba登录select status from v$instance;
    看看你数据库现在的状态不是open的,应该是mounted状态所以需要恢复你的数据库先。
      

  6.   

    在mount 状态,修改控制文件,
    SQL>shutdown abort;
    SQL>startup mount;找到你改动位置文件对应的tablespace,这里假设为testts,假设你移动的文件是 testts01.dbf
    SQL>alter tablespace testts  rename datafile‘/opt/oracle/oradata/orcl/testts01.dbf 
    to ‘/opt/oracle/oradata/test/testts01.dbf’;SQL> alter tablespace testts  online;
    SQL>alter database open;
      

  7.   

    SQL>alter tablespace testts  rename datafil‘/opt/oracle/oradata/orcl/testts01.dbf ’ 
    to ‘/opt/oracle/oradata/test/testts01.dbf’; 上面这句应该可以替换成
    SQL>alter database rename file‘/opt/oracle/oradata/orcl/testts01.dbf ’ 
    to ‘/opt/oracle/oradata/test/testts01.dbf’;