操作系统:RHEL5.3
数据库10g在sqlplus中运行命令:
startupORACLE instance started.Total System Global Area 2147483648 bytes
Fixed Size                  1220432 bytes
Variable Size             486539440 bytes
Database Buffers         1644167168 bytes
Redo Buffers               15556608 bytes
Database mounted.
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/oracle/redo03.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3这个redo03.log的日志文件被误删除了,请问如何解决数据库启动正常的问题。注:
数据丢失没有关系,有数据备份的。
大家解决的方法甚至包括重建数据库或者实例。

解决方案 »

  1.   


    SQL> shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup;
    ORACLE 例程已经启动。Total System Global Area  192937984 bytes
    Fixed Size                  1248044 bytes
    Variable Size             138413268 bytes
    Database Buffers           50331648 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员
    ORA-00312: 联机日志 3 线程 1:
    'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORCL\REDO03.LOG'------这里我日志组只有一个日志文件,不能删除日志组的最后一个成员,只能删除组的形式删除最后一个日志
    SQL> alter database drop logfile member 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORCL\REDO03.LOG';
    alter database drop logfile member 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORCL\REDO03.LOG'
    *
    第 1 行出现错误:
    ORA-00361: 无法删除最后一个日志成员
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORCL\REDO03.LOG (组 3)-------直接添加不成功,因为这个组有一个错误的日志文件,必须删除
    SQL> alter database add logfile member 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORCL\REDO04.LOG' to group
    alter database add logfile member 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORCL\REDO04.LOG' to group 3
    *
    第 1 行出现错误:
    ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员
    ORA-00312: 联机日志 3 线程 1:
    'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORCL\REDO03.LOG'
    ORA-27041: 无法打开文件
    OSD-04002: ???????
    O/S-Error: (OS 2) ????????????????----删除日志组
    SQL> alter database drop logfile group 3;数据库已更改。----添加新的日志组,放入日志文件。
    SQL> alter database add logfile group 3('E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYORCL\REDO03.LOG') size 1数据库已更改。SQL> shutdown immediate;
    ORA-01109: 数据库未打开
    已经卸载数据库。
    ORACLE 例程已经关闭
    --重启,没问题了。。
    SQL> startup;
    ORACLE 例程已经启动。Total System Global Area  192937984 bytes
    Fixed Size                  1248044 bytes
    Variable Size             138413268 bytes
    Database Buffers           50331648 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL>
      

  2.   

    日志文件丢失没事。
    重建一下就可以了。
    需要recover一下数据库。之后使用alter database open resetlogs打开数据库
      

  3.   

    重建一下就可以了。
    需要recover一下数据库。之后使用alter database open resetlogs打开数据库
      

  4.   

    如果数据库之前是一致性关闭的,GROUP 3 日志不被实例恢复过程所需要,则可以按以下步骤恢复:
    1、启动实例,安装数据库 STARTUP MOUNT
    2、重新创建日志文件组 ALTER DATABASE CLEAR [UNARCHIVED] LOGFILE GROUP 3;
    (如果该日志没有被归档,则使用 UNARCHIVED 选项)
    3、打开数据库 ALTER DATABASE OPEN;如果数据库之前是不一致性关闭的,GROUP 3 日志为实例恢复过程所需要,则需要还原数据库备份