http://dev.csdn.net/article/19/19867.shtm

解决方案 »

  1.   

    本人按http://dev.csdn.net/article/19/19867.shtm上面的说明来做了,但是还是不行.
    我生成的alter_df.sql 内容以下:
    alter database datafile 'C:\DATABASE\PROD\SYSTEM01.DBF' END BACKUP;
    alter database datafile 'C:\DATABASE\PROD\UNDOTBS01.DBF' END BACKUP;
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_DATA.DBF' END BACKUP;
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_INDEX.DBF' END BACKUP;
    alter database datafile 'C:\DATABASE\PROD\USERS01.DBF' END BACKUP;
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_REPORT_DATA.DBF' END BACKUP;
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_REPORT_INDEX.DBF' END BACKUP;
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_ARCHIVE_DATA.DBF' END BACKUP;
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_ARCHIVE_INDEX.DBF' END BACKUP;
    ==============================================================================
    执行sql>@alter_df.sql时出现Error;不知为什么?Error info以下:做了好几步都不行,只好
    在init<sid>.ora中加入如下参数                      
       _allow_resetlogs_corruption=TRUE                      
    再试:
    SQL> startup mount pfile=C:\oracle\ora92\database\initprod.ora
    ORACLE instance started.
    Total System Global Area  412163272 bytes
    Fixed Size                   453832 bytes
    Variable Size             285212672 bytes
    Database Buffers          125829120 bytes
    Redo Buffers                 667648 bytes
    資料庫已掛載.
    SQL> @c:\alter_df.sql;
    alter database datafile 'C:\DATABASE\PROD\SYSTEM01.DBF' END BACKUP
    *
    ERROR at line 1:
    ORA-01235: END BACKUP failed for 1 file(s) and succeeded for 0
    ORA-01199: file 1 is not in online backup mode
    ORA-01110: data file 1: 'C:\DATABASE\PROD\SYSTEM01.DBF'
    alter database datafile 'C:\DATABASE\PROD\UNDOTBS01.DBF' END BACKUP
    *
    ERROR at line 1:
    ORA-01235: END BACKUP failed for 1 file(s) and succeeded for 0
    ORA-01199: file 2 is not in online backup mode
    ORA-01110: data file 2: 'C:\DATABASE\PROD\UNDOTBS01.DBF'
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_DATA.DBF' END BACKUP
    *
    ERROR at line 1:
    ORA-01235: END BACKUP failed for 1 file(s) and succeeded for 0
    ORA-01199: file 3 is not in online backup mode
    ORA-01110: data file 3: 'C:\DATABASE\PROD\IFSAPP_DATA.DBF'
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_INDEX.DBF' END BACKUP
    *
    ERROR at line 1:
    ORA-01235: END BACKUP failed for 1 file(s) and succeeded for 0
    ORA-01199: file 4 is not in online backup mode
    ORA-01110: data file 4: 'C:\DATABASE\PROD\IFSAPP_INDEX.DBF'
    alter database datafile 'C:\DATABASE\PROD\USERS01.DBF' END BACKUP
    *
    ERROR at line 1:
    ORA-01235: END BACKUP failed for 1 file(s) and succeeded for 0
    ORA-01199: file 5 is not in online backup mode
    ORA-01110: data file 5: 'C:\DATABASE\PROD\USERS01.DBF'
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_REPORT_DATA.DBF' END BACKUP
    *
    ERROR at line 1:
    ORA-01235: END BACKUP failed for 1 file(s) and succeeded for 0
    ORA-01199: file 6 is not in online backup mode
    ORA-01110: data file 6: 'C:\DATABASE\PROD\IFSAPP_REPORT_DATA.DBF'
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_REPORT_INDEX.DBF' END BACKUP
    *
    ERROR at line 1:
    ORA-01235: END BACKUP failed for 1 file(s) and succeeded for 0
    ORA-01199: file 7 is not in online backup mode
    ORA-01110: data file 7: 'C:\DATABASE\PROD\IFSAPP_REPORT_INDEX.DBF'
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_ARCHIVE_DATA.DBF' END BACKUP
    *
    ERROR at line 1:
    ORA-01235: END BACKUP failed for 1 file(s) and succeeded for 0
    ORA-01199: file 8 is not in online backup mode
    ORA-01110: data file 8: 'C:\DATABASE\PROD\IFSAPP_ARCHIVE_DATA.DBF'
    alter database datafile 'C:\DATABASE\PROD\IFSAPP_ARCHIVE_INDEX.DBF' END BACKUP
    *
    ERROR at line 1:
    ORA-01235: END BACKUP failed for 1 file(s) and succeeded for 0
    ORA-01199: file 9 is not in online backup mode
    ORA-01110: data file 9: 'C:\DATABASE\PROD\IFSAPP_ARCHIVE_INDEX.DBF'====================================================================
    SQL> alter database open ;
    alter database open
    *
    ERROR at line 1:
    ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
    =====================================================================
    SQL> recover database until cancel;
    ORA-00279: change 169537528 generated at 08/18/2004 14:20:52 needed for thread 1
    ORA-00289: suggestion : C:\ORACLE\ORA92\RDBMS\ARC00001.001
    ORA-00280: change 169537528 for thread 1 is in sequence #1
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    //在这光标停在这,我按了回车跳过了.
    ORA-00308: cannot open archived log 'C:\ORACLE\ORA92\RDBMS\ARC00001.001'
    ORA-27041: unable to open file
    OSD-04002: 5L*k6}[email protected]
    O/S-Error: (OS 2) (t2N'd$#(l+|)w*:@I.W!C
    ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
    ORA-01194: file 1 needs more recovery to be consistent
    ORA-01110: data file 1: 'C:\DATABASE\PROD\SYSTEM01.DBF'
    =====================================================================
    SQL> alter database open resetlogs; 
    alter database open resetlogs
    *
    ERROR at line 1:
    ORA-01092: ORACLE 執行處理已終止. 強制切斷連線
    ==============================================
    到这为止自动断线了.各位大虾我该怎么办呢?drabit(square):
      我的没有成功,是否与 sql>@c:\alter_df.sql 出现错误有关呢? 
        
      

  2.   

    ORA-01589 must use RESETLOGS or NORESETLOGS option for database openCause: Either incomplete or backup control file recovery has been performed. After these types of recovery you must specify either the RESETLOGS option or the NORESETLOGS option to open your database.Action: Specify the appropriate option.是不是RESETLOGS选项没指定?
      

  3.   

    //在这光标停在这,我按了回车跳过了.按cancel
      

  4.   

    drabit(square):
       我按你的意思又重了一次,还是老样子.
     你能说说我出现的Error info是为什么吗?SQL> recover database until cancel;
    ORA-00279: change 169537530 generated at 08/18/2004 14:52:52 needed for thread 1
    ORA-00289: suggestion : C:\ORACLE\ORA92\RDBMS\ARC00001.001
    ORA-00280: change 169537530 for thread 1 is in sequence #1
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    cancel//在这里我按了cancel就是不行,为什么呢?
    ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
    ORA-01194: file 1 needs more recovery to be consistent
    ORA-01110: data file 1: 'C:\DATABASE\PROD\SYSTEM01.DBF'
    ORA-01112: media recovery not started
    SQL> alter database open resetlogs;
    alter database open resetlogs
    *
    ERROR at line 1:
    ORA-01092: ORACLE 執行處理已終止. 強制切斷連線========================================
    到这还是不行.我又重新启动.
    ========================================
    SQL> startup pfile=c:\oracle\ora92\database\initprod.ora;
    已啟動 ORACLE 執行處理.Total System Global Area  412163272 bytes
    Fixed Size                   453832 bytes
    Variable Size             285212672 bytes
    Database Buffers          125829120 bytes
    Redo Buffers                 667648 bytes
    資料庫已掛載.
    ORA-01113: ????? 1 ????????
    ORA-01110: ??? 1: 'C:\DATABASE\PROD\SYSTEM01.DBF'
    ===================================================
    还是老样子,我查看了redo log file.
    ==================================================
    SQL> select * from v$log;    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIV STATUS                    
    ---------- ---------- ---------- ---------- ---------- ------ -------------------
             1          1          0   10485760          1 YES    UNUSED                    
             2          1          0   10485760          1 YES    UNUSED                    
             3          1          1   10485760          1 NO     CURRENT                   SQL> select * from v$logfile;    GROUP# STATUS         TYPE
    ---------- -------------- --------------
    MEMBER
    ---------------------------------------------------------------------------------
             3                ONLINE
    C:\DATABASE\PROD\REDO03.LOG         2                ONLINE
    C:\DATABASE\PROD\REDO02.LOG         1                ONLINE
    C:\DATABASE\PROD\REDO01.LOG
    ===============================
    请问我的redo log file 的状态是否正常??
      

  5.   

    我的:
    ----------------------------------------------------
     1         ONLINE  D:\ORACLE\ORADATA\IAS\REDO01.LOG
     2         ONLINE  D:\ORACLE\ORADATA\IAS\REDO02.LOG
     3 STALE   ONLINE  D:\ORACLE\ORADATA\IAS\REDO03.LOG看样子你的LOG文件应该正常
      

  6.   

    我想是不是我的SYSTEM01.DBF与UNDOTBS01.DBF文件有损坏.
    如果是真的损坏了,请问各位高手,还得救吗?
    最惨我就是我没做任何的backup .乌乌....
      

  7.   

    没错,应该是你的 system01.dbf 文件被损坏了,如果没有备份会很麻烦。有备份的话恢复一下应该就可以了。如果没有备份,就把其它的数据文件全部备份一下,还有控制文件以及联机重做日值文件,归档日志文件等,然后重装用备份的文件进行覆盖,然后恢复数据库