首先执行了
        system alter set control_files='F:\oracle\product\10.1.\oradata\cug\CONTROL01.CTL',
                                        'F:\oracle\product\10.1.0\oradata\cug\CONTROL02.CTL',
                                        'F:\oracle\product\10.1.0\oradata\cug\CONTROL03.CTL',
                                        'F:\oracle\product\10.1.0\oradata\cug\CONTROL04.CTL' scope=spfile;
         shutdown immediate;
但重启以后,用sqlplus登陆出现了以下状况:
         
         C:\Documents and Settings\Administrator>sqlplus         SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 4月 21 18:52:50 2010         Copyright (c) 1982, 2004, Oracle.  All rights reserved.         请输入用户名:  scott
         请输入口令:
         ERROR:
         ORA-01033: ORACLE initialization or shutdown in progress
于是,和大家一样,我用了以下的方法登陆,不过仍然有问题 ,请看下列操作 :
         
         C:\Documents and Settings\Administrator>sqlplus /nolog         SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 4月 21 19:22:25 2010         Copyright (c) 1982, 2004, Oracle.  All rights reserved.         SQL> connect /as sysdba
         已连接。
         SQL> select * from emp ;
         select * from emp
              *
         第 1 行出现错误:
         ORA-01219: ??????: ???????/?????
说明一下我的运行环境是 :Oracle Release 10.1.0.2.0 / windows xp
请不要讨论sid问题,我没有动过sid ,也没有删除任何的文件 ,只是对control_files进行了修改 PS :startup mount命令会报错,startup nomount 不会报错
重启数据库是没有用的
我怀疑是对control_files修改出现问题了,请问如何恢复control_files。
当然只是本人的不成熟的意见,希望各位大牛能够指教~~

解决方案 »

  1.   

    c:\> set nls_lang=american_america.zhs16gbkc:\>sqlplus /nologsql> connect / as sysdbasql> shutdown immeidate;sql> startup nomountsql> alter database open;        ---这里以后,把出错信息打出来看看。
      

  2.   

    对于 control_files 这个参数,如果你修改错了,你到硬盘上看看你的控制文件在哪里? 改回来就是了。
    如果你的控制文件坏了,那得使用其它方式来恢复数据库了
      

  3.   

    先把你F:\oracle\product\10.1.0\oradata\cug\下的控制文件备份。
    你将修改路径前的控制文件复制到修改后的路径下,试着重新启动一下。
      

  4.   

    修改参数control_files后  
    还要将原来的参数文件拷贝到你所写的对应目录啊
    SQL>host copy 目录一,目录二
      

  5.   

    奇怪 都还没启动 应该只能以sysdba方式登陆去启动吧。。
      

  6.   


    system alter set control_files='F:\oracle\product\10.1.\oradata\cug\CONTROL01.CTL',
    'F:\oracle\product\10.1.0\oradata\cug\CONTROL02.CTL',
    'F:\oracle\product\10.1.0\oradata\cug\CONTROL03.CTL',
    'F:\oracle\product\10.1.0\oradata\cug\CONTROL04.CTL' scope=spfile;
    shutdown immediate;你这个写错了吧 
    是这样alter system set control_file 估计没有什么好的办法,把现有的控制文件备份,再把路径改回为原来的路径试试。
      

  7.   

    你有控制文件的备份吗  ,控制文件也可以设置为自动备份,如果你设了,那最好了。shutdown immediate;
    startup nomount
    restore controlfile from autobackup
    --没设自动备份的话,restore controlfile from 'xxx/xxx/xxx.xxx' 指出备份的控制文件路径。
    alter database mount
    recover database
    alter database open resetlogs之后做个全备。手打的,若有错自改。
      

  8.   

     不过应该是 select * from scott.emp ;