可以用只要的步骤。
SVRMGRL
SVRMGRL>CONNECT INTERNAL
SVRMGRL>STARTUP MOUNT
SVRMGRL>RECOVER DATABASE USING BACKUP CONTROLFILE;

解决方案 »

  1.   

    to  LGQDUCKY(飘) :
    我的控制文件全丢了,
    你怎么可以STARTUP MOUNT呢?
      

  2.   

    //如果是这样备份控制文件的.
    SQL>alter database backup controlfile to trace ; //该目录下,跟你的 进程号 或者 windows下是线程号相关的trc文件里面 
    SQL> show parameters user_dump_destNAME                                 TYPE    VALUE
    ------------------------------------ ------- ------------------------------
    user_dump_dest                       string  E:\oracle\admin\orac\udump
    SQL>
    //如果以前备份(copy)到其他地方,copy回来,再做个介质恢复就可以了//如果controlfile的备份找不到了,还是重建控制文件把STARTUP NOMOUNT
    CREATE CONTROLFILE REUSE DATABASE "BACKUP" NORESETLOGS ARCHIVELOG
        MAXLOGFILES 32
        MAXLOGMEMBERS 2
        MAXDATAFILES 254
        MAXINSTANCES 1
        MAXLOGHISTORY 453
    LOGFILE
      GROUP 1 'D:\BACKUPDB\REDO01.LOG'  SIZE 1M,
      GROUP 2 'D:\BACKUPDB\REDO02.LOG'  SIZE 1M,
      GROUP 3 'D:\BACKUPDB\REDO03.LOG'  SIZE 1M
    DATAFILE
      'D:\BACKUPDB\SYSTEM01.DBF',
      'D:\BACKUPDB\RBS01.DBF',
      'D:\BACKUPDB\USERS01.DBF',
      'D:\BACKUPDB\TEMP01.DBF',
      'D:\BACKUPDB\TOOLS01.DBF',
      'D:\BACKUPDB\INDX01.DBF'
    CHARACTER SET ZHS16GBK
    ;
    RECOVER DATABASE
    ALTER SYSTEM ARCHIVE LOG ALL;
    ALTER DATABASE OPEN;
      

  3.   

    to : lucipeter(光之翼) :
    你说的是对的,
    但我没有alter database backup controlfile to trace ; 
    而是:alter DATABASE BACKUP CONTROLFILE TO filename 请问如何用filename文件生成创建控制文件的SQL输出呢?
      

  4.   

    SQL> select * from V$CONTROLFILE ;STATUS  NAME
    ------- ------------------------------------------------------------
            E:\ORACLE\ORADATA\ORAC\CONTROL01.CTL
            E:\ORACLE\ORADATA\ORAC\CONTROL02.CTL
            E:\ORACLE\ORADATA\ORAC\CONTROL03.CTLSQL> alter DATABASE BACKUP CONTROLFILE TO 'd:\1.txt' ; //filename可以随意取把那个filename(1.txt)改名后(CONTROL01.CTL),copy回来就可以了~不妨试试!?
      

  5.   

    要看sql语句,可以通过看udump下面备份生成的*.trc文件...