今天在开启数据库时,遇到ORA-03113: end-of-file on communication channel的问题
SQL> startup ORACLE instance started. Total System Global Area 455127040 bytes Fixed Size 2229304 bytes Variable Size 297798600 bytes Database Buffers 150994944 bytes Redo Buffers 4104192 bytes Database mounted. ORA-03113: end-of-file on communication channel Process ID: 12594 Session ID: 1 Serial number: 5因此查看预警日志,我用的是oracle 11g,预警日志文件默认位于$ORACLE _BASE/diag/rdbms/orcl/orcl/trace目录下,如果不知道,可以查看参数background_ dump_dest,这个参数是用来指定预警日志文件和后台进程追踪文件的位置的
SQL> show parameter background_dump_dest NAME TYPE VALUE --------------------- ----------- ------------------------------ background_dump_dest string /u01/app/oracle/diag/rdbms/orcl/orcl/trace使用tail命令查看trace目录下的alert_orcl.log文件,显示如下:
Thu Oct 26 02:02:24 2017 Starting ORACLE instance (normal) LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 [此处省去N多行,哈哈...] ALTER DATABASE MOUNT Successful mount of redo thread 1, with mount id 1486116145 Database mounted in Exclusive Mode Lost write protection disabled Completed: ALTER DATABASE MOUNT #在mount的时候没出错呦 Thu Oct 26 02:02:30 2017 ALTER DATABASE OPEN #在open的时候报错了,这里就是要关注的点了 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_lgwr_12518.trc: ORA-00322: log 3 of thread 1 is not current copy ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/orcl/redo03.log' Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_lgwr_12518.trc: ORA-00322: log 3 of thread 1 is not current copy ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/orcl/redo03.log' Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_12594.trc: ORA-00322: log 1 of thread is not current copy ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/orcl/redo03.log' USER (ospid: 12594): terminating the instance due to error 322 System state dump requested by (instance=1, osid=12594), summary=[abnormal instance termination]. System State dumped to trace file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_diag_12498.trc Dumping diagnostic data in directory=[cdmp_20171026020230], requested by (instance=1, osid=12594), summary=[abnormal instance termination]. Instance terminated by USER, pid = 12594看报错信息,发现问题出在联机重做日志文件/u01/app/oracle/oradata/orcl/redo03.log上,这个文件中的信息和数据库现在的状态不匹配。
现在清除这个重做日志文件:
SQL> alter database clear logfile '/u01/app/oracle/oradata/orcl/redo03.log'; Database altered.清除成功,然后继续打开数据库:
SQL> alter database open; Database altered.至此,数据库已经成功开启。