ORACLE启动报错ORA-03113: end-of-file on communication channel
Posted 点点滴滴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE启动报错ORA-03113: end-of-file on communication channel相关的知识,希望对你有一定的参考价值。
使用过程中发现oracle运行很慢(其实应该先关注空间问题),就准备关机重启一下,关不掉就强制关闭,然后启动就报错了。
1.SQL> startup
ORACLE instance started.
Total System Global Area 6614106112 bytes
Fixed Size 2213896 bytes
Variable Size 3154118648 bytes
Database Buffers 3422552064 bytes
Redo Buffers 35221504 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 5982
Session ID: 96 Serial number: 3
网上去查看ORA-03113: end-of-file on communication channel这个错误,发现大家说的可能性很多,讲的也很全面,但自己的究竟是哪个呢。其实大家找寻问题,最重要的是要看日志。这里我们就去查看alert日志。
通过日志在alert日志中发现了问题的根源,alert中报错信息为
ORA-19815: WARNING: db_recovery_file_dest_size of 4070572032 bytes is 100.00% used, and has 0 remaining bytes available.
直接了当的反映了由于db_recovery_file_dest_size的空间已经被使用满了,所以导致无法启动。
解决起来就很容易了,先将数据库启动到mount状态(因为已经无法开启了嘛)
SQL> startup mount
接下来,查看一下我们预先配置的db_recovery_file_dest_size究竟有多大。
SQL> show parameter db_recovery_file_dest_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 3882M
只有4个G不到,立刻查看了一下,其他几台生产环境的数据库参数。
SQL> show parameter db_recovery_file_dest_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 4000G
立刻震惊,好吧。真阔绰。4T。修改一下吧。
SQL> ALTER SYSTEM SET db_recovery_file_dest_size=4000G scope=both;
好了。接下来。就可以把库启动起来了。
针对这种空间问题有几种解决办法,以上是其中一种。
解决办法有三个,如下:
1> 设置新的归档路径,操作语句为 SQL> alter system set log_archive_dest=new_location;
2> 转储或删除闪回恢复区里的归档日志;
3> 增大闪回恢复区,操作语句为 SQL> alter system set db_recovery_file_dest_size=new_size;
如下采用删除过旧归档备份进行处理。
4. RMAN方式登录,手动删除不需要的归档日志(eg:删除三天以前的归档记录)
[[email protected] trace]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Wed Apr 20 15:49:22 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: HBANG (DBID=1821727253, not open)
RMAN>delete archivelog all completed before ‘sysdate - 3‘;
......
Do you really want to delete the above objects (enter YES or NO)?YES
......
RMAN> quit
5. 重新打开数据库验证
SQL> alter database open;
Database altered.
ps:
alert日志具体的路径
/ORACLE_HOME/diag/rdbms/ora9i/ora9i/trace/alert_ora9i.log我们这边是9i版本,其他的稍微有些区别,具体是
Oracle 10G :/ORACLE_HOME/oracle/admin/oracle155/bdump
Oracle 11G:/ORACLE_HOME/diag/rdbms/ora11g/ora11g/alert
同时可以通过:SQL> select * from v$diag_info where name =‘Diag Alert‘;
查询alert 文件位置
2.
以上是关于ORACLE启动报错ORA-03113: end-of-file on communication channel的主要内容,如果未能解决你的问题,请参考以下文章
ORACLE启动报错ORA-03113: end-of-file on communication channel
Oracle错误ORA-03113: end-of-file on communication channel处理办法
ORA-03113: end-of-file on communication channel 解决方案
ORA-03113: end-of-file on communication channel 磁盘慢,数据库启动失败
ORA-03113: End-of-file on Communication Channel Upon Startup of Database