oracle00312,Oracle 报错:ORA-00313、ORA-00312、ORA-27047 解决方法

d1da15010a62c74b90395c4ca66a8429.png

SQL> startup

ORACLE instance started.

Total System Global Area 1252663296 bytes

Fixed Size            2252824 bytes

Variable Size          805310440 bytes

Database Buffers      436207616 bytes

Redo Buffers            8892416 bytes

Database mounted.

ORA-03113: end-of-file on communication channel

Process ID: 40669

Session ID: 125 Serial number: 5

查看alert日志

[oracle@vastdata1 ~]$ vi /u01/app/oracle/diag/rdbms/prod/PROD/trace/alert_PROD.log

......

Errors in file /u01/app/oracle/diag/rdbms/prod/PROD/trace/PROD_lgwr_40796.trc:

ORA-00313: open failed for members of log group 2 of thread 1

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/PROD/redo02.log'

ORA-27047: unable to read the header block of file

Linux-x86_64 Error: 25: Inappropriate ioctl for device

......

解决方法如下:

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup mount

ORACLE instance started.

Total System Global Area 1252663296 bytes

Fixed Size            2252824 bytes

Variable Size          805310440 bytes

Database Buffers      436207616 bytes

Redo Buffers            8892416 bytes

Database mounted.

清理损坏的日志

SQL> alter database clear logfile group 2;

Database altered.

删除损坏的日志

SQL> alter database drop logfile group 2;

Database altered.

现在可以正常打开数据库

SQL> alter database open;

Database altered.

添加日志

SQL> alter database add logfile group 2 ('/u01/app/oracle/oradata/PROD/redo02.log') size 50M;

Database altered.

其他

有归档也可以先恢复下

recover database until cancel;

alter database open resetlogs;