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

来源:互联网 发布:windows系统书籍 编辑:程序博客网 时间:2024/04/28 11:20

今天数据库服务器莫名出问题,通过查看日志的方式知道到问题。我们要习惯于通过日志去查找问题,然后解决问题。日志是非常有用的一个东西。
启动报错如下:

startup
Total System Global Area 3340451840 bytes
Fixed Size 2217952 bytes
Variable Size 2499807264 bytes
Database Buffers 822083584 bytes
Redo Buffers 16343040 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
。。。。。

1、解决思路(ORACLE11G):

查看orcle启动日志,确定具体是什么原因引起的错误。1、确定日志位置操作日志:$ORACLE_HOME/startup.log启动日志:$ORACLE_BASE/diag/rdbms/ora11g/ora11g/trace/alert_ora11g.log (ora11g为SID值)

启动日志如果查找不到,请到trace目录下执行 ls -alcr | grep alert (c时间排序、r倒序)

2、打开日志tail -f -n 500 alert_ora11g.log  ,查看错误,截取片段如下========================================================================Errors in file /data00/oracle/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_m000_9340.trc:ORA-19815: WARNING: db_recovery_file_dest_size of 8589934592 bytes is 100.00% used, and has 0 remaining bytes available.

You have following choices to free up space from recovery area:1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,   then consider changing RMAN ARCHIVELOG DELETION POLICY.2. Back up files to tertiary device such as tape using RMAN   BACKUP RECOVERY AREA command.   Tue May 03 11:29:14 2011   ALTER SYSTEM SET db_recovery_file_dest_size='8G' SCOPE=BOTH;3. Add disk space and increase db_recovery_file_dest_size parameter to   reflect the new space.4. Delete unnecessary files using RMAN DELETE command. If an operating   system command was used to delete files, then use RMAN CROSSCHECK and   DELETE EXPIRED commands.

原因找到啦,归档日志满了。

2、解决办法有三个:
1.将归档设置到其他目录,修改alter system set log_archive_dest = 其他路径
2.转移或者删除闪回恢复区里的归档日志。
3.增大闪回恢复区。alter system set db_recovery_file_dest_size=8G;

3、增大闪回恢复区
sqlplus /nolog

conn / as sysdba;
shutdown immediate;
startup mount;
(startup nomount只是启动了实例而没有启动数据库,startup mount启动了实例,并加载了数据库,但是数据库没有打开,startup是最全的,实例,数据库加载,数据库打开都完成。)

startup mount我这里可以成功启动。

show parameter db_recovery_file_dest_size //显示当前回复区大小

4、通过rman,删除过期日志。

connect target /
crosscheck archvelog all;
delete expired archivelog all;
exit

0 0