机器遭遇断电,之后oracle就不能启动了,报错ORA-03113: end-of-file oncommunication channel (通信通道的文件结尾)

SQL> startup

ORACLE instance started.

Total System Global Area1252663296 bytes

Fixed Size 2227944 bytes

Variable Size 704643352 bytes

Database Buffers 536870912 bytes

Redo Buffers 8921088 bytes

Database mounted.

ORA-03113: end-of-file oncommunication channel

Process ID: 8117

Session ID: 191 Serial number: 3


网上分析,可能由于昨晚数据库强制关闭,导致文件状态可能不一致,因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致。解决方案如下

启动DB

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup mount

ORACLE instance started.

直接reset不成功

SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTESBLOCKSIZE MEMBERS ARC

---------- ---------- -------------------- ---------- ---------- ---

STATUS FIRST_CHANGE# FIRST_TIMNEXT_CHANGE# NEXT_TIME

---------------- ---------------------- ------------ ---------

1 1 112 52428800 512 1 NO

INACTIVE 3826382 16-JUL-133857158 17-JUL-13

3 1 114 52428800 512 1 NO

CURRENT 3886899 17-JUL-132.8147E+14

2 1 113 52428800 512 1 NO

INACTIVE 3857158 17-JUL-133886899 17-JUL-13

SQL> alter database openresetlogs 2;

alter database open resetlogs 2

*

ERROR at line 1:

ORA-02288: invalid OPEN mode

恢复数据库

SQL> alter database openresetlogs;

alter database open resetlogs

*

ERROR at line 1:

ORA-01139: RESETLOGS option onlyvalid after an incomplete database recovery

SQL> recover database untiltime '2013-07-05'

Media recovery complete.

SQL> alter database openresetlogs;

Database altered.

成功。