为了学习,进行测试,现在反而不能正常启动了。方法如下:
1,把数据库调整到noarchive模式。
2,shutdown immediate
3,删除三个联机日志文件。
4,重新startup,发现打不开。
5,使用 alter database clear logfile group 1; alter database clear logfile group 2; alter database clear logfile group 3;的方式,建立了三个日志文件。
6,SQL> startup
ORACLE 例程已经启动。Total System Global Area  289406976 bytes
Fixed Size                  1248600 bytes
Variable Size              92275368 bytes
Database Buffers          192937984 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
做不出来了,不知道还能否正确启动oracle了。希望大家指教啊。

解决方案 »

  1.   

    现在提示的错误是找不到数据文件SYSTEM01.DBF,不是联机日志啊。
      

  2.   


    我是删除的联机日志文件,在目录下,存在着SYSAUX01.DBF文件。系统的提示:找不到数据文件SYSTEM01.DBF,我估计还是联机日志文件被删除,而引起的。我没有做任何备份,怎么办呢? 能启动马?
      

  3.   

    你要先recover database until cancel
    再alter database open resetlogs;
      

  4.   

    还有你alter database clear logfile group x都执行成功了吗?
    其实这种掉联机日志的情况只需在做不完全恢复后,再resetlogs,不用去clear logfile了。
      

  5.   

    做个实验:
    1.切换到noarchivelog模式,shutdown immediate,删除全部联机日志;
    2.
    SYS@tl>startup
    ORACLE 例程已经启动。Total System Global Area  306184192 bytes
    Fixed Size                  1290328 bytes
    Variable Size             268439464 bytes
    Database Buffers           29360128 bytes
    Redo Buffers                7094272 bytes
    数据库装载完毕。
    ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员
    ORA-00312: 联机日志 1 线程 1: 'D:\ORADATA\TL\REDO01.LOG'
    SYS@tl>recover database until cancel
    完成介质恢复。
    SYS@tl>alter database open resetlogs;数据库已更改。SYS@tl>select * from v$version;BANNER
    ----------------------------------------------------------------
    Personal Oracle Database 10g Release 10.2.0.3.0 - Production
    PL/SQL Release 10.2.0.3.0 - Production
    CORE    10.2.0.3.0      Production
    TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - ProductionSYS@tl>
    3.搞定。
      

  6.   

    过程如下:
    SQL> shutdown immediate
    ORA-01109: 数据库未打开
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。Total System Global Area  289406976 bytes
    Fixed Size                  1248600 bytes
    Variable Size              92275368 bytes
    Database Buffers          192937984 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
    SQL> recover database until cancel;
    ORA-00283: 恢复会话因错误而取消
    ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成
    SQL> alter database open resetlogs;
    alter database open resetlogs
    *
    第 1 行出现错误:
    ORA-01113: 文件 1 需要介质恢复
    ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
      

  7.   

    你怎么不把过程描述清楚?你用了BACKUP CONTROLFILE。加个using BACKUP CONTROLFILE就行了。
      

  8.   


    SQL> shutdown immediate
    ORA-01109: 数据库未打开
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。Total System Global Area  289406976 bytes
    Fixed Size                  1248600 bytes
    Variable Size              92275368 bytes
    Database Buffers          192937984 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
    SQL>  recover database until cancel using backup controlfile;
    ORA-00279: 更改 617120 (在 09/22/2008 14:11:05 生成) 对于线程 1 是必需的
    ORA-00289: 建议:
    C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_09_24\O1_MF_1_
    5_%U_.ARC
    ORA-00280: 更改 617120 (用于线程 1) 在序列 #5 中
    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
    auto
    ORA-00308: 无法打开归档日志
    'C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_09_24\O1_MF_1
    _5_%U_.ARC'
    ORA-27041: 无法打开文件
    OSD-04002: 无法打开文件
    O/S-Error: (OS 2) 系统找不到指定的文件。
    ORA-00308: 无法打开归档日志
    'C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_09_24\O1_MF_1
    _5_%U_.ARC'
    ORA-27041: 无法打开文件
    OSD-04002: 无法打开文件
    O/S-Error: (OS 2) 系统找不到指定的文件。
    ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
    ORA-01194: 文件 1 需要更多的恢复来保持一致性
    ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
    SQL> alter database open resetlogs; 
    alter database open resetlogs
    *
    第 1 行出现错误:
    ORA-01194: 文件 1 需要更多的恢复来保持一致性
    ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'总是出现这个问题, ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
    该如何处理呢 ?
      

  9.   

    输入cancel
    你的数据库在删除联机日志前是正常关闭?
      

  10.   

    然后:SQL> select member ,status from v$logfile;MEMBER
    ------------------------------------------------------
    STATUS
    -------
    C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
    C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
    C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
    这三个logfile,都没有status?
      

  11.   


    输入cancel如下:SQL> shutdown immediate
    ORA-01109: 数据库未打开
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。Total System Global Area  289406976 bytes
    Fixed Size                  1248600 bytes
    Variable Size              92275368 bytes
    Database Buffers          192937984 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
    SQL> recover database until cancel using backup controlfile; 
    ORA-00279: 更改 617120 (在 09/22/2008 14:11:05 生成) 对于线程 1 是必需的
    ORA-00289: 建议:
    C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_09_24\O1_MF_1_
    5_%U_.ARC
    ORA-00280: 更改 617120 (用于线程 1) 在序列 #5 中
    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
    cancel
    ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
    ORA-01194: 文件 1 需要更多的恢复来保持一致性
    ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
    ORA-01112: 未启动介质恢复
    我记得,以前关闭数据库,是正常关闭的啊。
      

  12.   

    有没有status都没关系。关键是你并没把你的操作步骤说明清楚。如果真是按你贴的1-4步做的,那么你可以看到我上面做的实验,已经成功恢复了。
    你recover database的时候别用auto,用cancel。
    如果你删联机日志前是正常关闭数据库,应该不会有问题。如果是abort,那么就修改_allow_resetlogs_corruption参数,再打开数据库,不过可能会报错。
      

  13.   

    输入cancel如下: SQL> shutdown immediate 
    ORA-01109: 数据库未打开 
    已经卸载数据库。 
    ORACLE 例程已经关闭。 
    SQL> startup 
    ORACLE 例程已经启动。 Total System Global Area  289406976 bytes 
    Fixed Size                  1248600 bytes 
    Variable Size              92275368 bytes 
    Database Buffers          192937984 bytes 
    Redo Buffers                2945024 bytes 
    数据库装载完毕。 
    ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项 
    SQL> recover database until cancel using backup controlfile; 
    ORA-00279: 更改 617120 (在 09/22/2008 14:11:05 生成) 对于线程 1 是必需的 
    ORA-00289: 建议: 
    C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_09_24\O1_MF_1_ 
    5_%U_.ARC 
    ORA-00280: 更改 617120 (用于线程 1) 在序列 #5 中 
    指定日志: { <RET>=suggested | filename | AUTO | CANCEL} 
    cancel 
    ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误 
    ORA-01194: 文件 1 需要更多的恢复来保持一致性 
    ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF' 
    ORA-01112: 未启动介质恢复 
    我记得,以前关闭数据库,是正常关闭的啊。
    我问题还是无法解决,请指点.
      

  14.   

    SQL> shutdown immediate
    ORA-01109: 数据库未打开
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。Total System Global Area  289406976 bytes
    Fixed Size                  1248600 bytes
    Variable Size              83886760 bytes
    Database Buffers          201326592 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
    SQL>
    SQL> recover database until cancel using backup controlfile;
    ORA-00279: 更改 546737 (在 10/18/2007 10:09:27 生成) 对于线程 1 是必需的
    ORA-00289: 建议:
    E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\EIPOA\ARCHIVELOG\2009_05_05\O1_MF_1_2_%U_.ARC
    ORA-00280: 更改 546737 (用于线程 1) 在序列 #2 中
    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
    cancel
    ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
    ORA-01194: 文件 1 需要更多的恢复来保持一致性
    ORA-01110: 数据文件 1: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\EIPOA\SYSTEM01.DBF'
    ORA-01112: 未启动介质恢复
    SQL>请高手指点,谢谢!