启动数据库时发现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>
至此,数据库已成功启动。
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>
至此,数据库已成功启动。