Oracle的一个意外错误ORA-03113: end-of-file.

前段时间,在服务器上安装了个Oracle,用作测试和学习之用。后来由于上面运行了网站,平时不用的时候就把oracle关掉了。今天,在启动Oracle时突然发现无法正常启动了。在open的时候报了ORA-03113错误。

[oracle@cloudserver 2014_08_05]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Tue Aug 5 15:55:56 2014

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount;

ORACLE instance started.

Total System Global Area  534462464 bytes

Fixed Size                2215064 bytes

Variable Size                  356516712 bytes

Database Buffers           167772160 bytes

Redo Buffers                    7958528 bytes

SQL> alter database mount;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE

————————————————————

MOUNTED

SQL> alter database open;

alter database open

ERROR at line 1:

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

Process ID: 18385

Session ID: 125 Serial number: 3

 

报错的第一件事情是做什么?当然是查看alert日志

[oracle@cloudserver trace]$ tail -f alert_oradb.log

发现了下面的错误信息

************************************************************************

Errors in file /home/oracle/product/diag/rdbms/oradb/oradb/trace/oradb_ora_6574.trc:

ORA-19809: limit exceeded for recovery files

ORA-19804: cannot reclaim 39034880 bytes disk space from 4070572032 limit

ARCH: Error 19809 Creating archive log file to ‘/home/oracle/product/flash_recovery_area/ORADB/archivelog/2014_08_05/o1_mf_1_101_%u_.arc’

Errors in file /home/oracle/product/diag/rdbms/oradb/oradb/trace/oradb_arc1_6609.trc:

ORA-19815: WARNING: db_recovery_file_dest_size of 4070572032 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.

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.

************************************************************************

 

上面错误的意思是闪存恢复区不够了,空间满了没办法归档了。

检查了下系统磁盘空间,还是比较充足的。

原来oracle11g在默认情况下,归档日志是保存在闪存恢复区的,默认大小为2G,目前设置大小是4g,空间满了之后就没有办法再归档了。

SQL> show parameter db_recovery_file_dest;

 

NAME                                         TYPE

———————————— ———————————

VALUE

——————————

db_recovery_file_dest                string

/home/oracle/product/flash_rec

overy_area

db_recovery_file_dest_size       big integer

3882M

 

解决办法:

  1. 加大闪存区大小:

SQL> ALTER SYSTEM SET db_recovery_file_dest_size=8g scope=both;

System altered.

  1. 归档路径设置到其它地方。

alter system set log_archive_dest = 其他路径

  1. 删除无用归档

[oracle@cloudserver ORADB]$ rman

Recovery Manager: Release 11.2.0.1.0 – Production on Tue Aug 5 16:24:30 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

RMAN> connect target  sys/oracle

connected to target database: ORADB (DBID=2603493220)

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

共有 0 条评论

Top