您的位置:首页 > 数据库 > Oracle

oracle联机重做日志文件丢失

2007-07-08 23:06 555 查看
启动数据库时发现redo log file 丢失,经过分析处理后,数据库恢复正常,如下是问题的出现和处理过程:
SQL> STARTUP;
ORACLE instance started.
Total System Global Area  216643612 bytes
Fixed Size                    75804 bytes
Variable Size              78147584 bytes
Database Buffers          134217728 bytes
Redo Buffers                4202496 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: 'D:/ORACLE/ORADATA/ORADB/REDO01.LOG'
 
发现无法打开REDO01.LOG文件。
查询日志状态:
SQL> select * from v$log;
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- -------------------
         1          1         11    1048576          1 YES INACTIVE
       115921 2007-06-30 00:14:57
         2          1         12    1048576          1 NO  CURRENT
       115922 2007-06-30 00:15:03
         3          1         10    1048576          1 YES INACTIVE
       115920 2007-06-30 00:14:55
查看日志组和成员信息:
SQL> select * from v$logfile;
    GROUP# STATUS
---------- -------
MEMBER
--------------------------------------------------------------------------------
         1
D:/ORACLE/ORADATA/ORADB/REDO01.LOG
         2
D:/ORACLE/ORADATA/ORADB/REDO02.LOG
         3
D:/ORACLE/ORADATA/ORADB/REDO03.LOG
 
发现是非当前状态(INACTIVE)且已归档(数据库处理归档模式下)的日志文件丢失,那么clear命令重建就可以解决问题,如果是当前状态且未归档的日志文件丢失,则要进行force clear或recover才可以的。
 
用clear命令重建丢失的日志文件:
SQL> alter database clear logfile group 1;
Database altered.
SQL> alter database open;
Database altered.
SQL>
至此,数据库已成功启动。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息