oracle11.2.0.3 安装在SUSE 11.1上,今天早上应用程序进不去,之后发现数据库连不上。


通过sqlplus连接数据库,startup启动报ORA-03113错误

SQL> startup
ORACLE instance started.
Total System Global Area 3641094144 bytes
Fixed Size                  2233680 bytes
Variable Size            2013268656 bytes
Database Buffers         1610612736 bytes
Redo Buffers               14979072 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 4332
Session ID: 45 Serial number: 3


检查oracle错误日志alert.log(位置在oracl_base/diag/rdbms/orcl/orcl/trace)发现有很多ORA-19815错误

ARC0: Error 19809 Creating archive log file to '/opt/oracle/fast_recovery_area/ORCL/archivelog/2013_07_03/o1_mf_1_112_%u_.arc'
Errors in file /opt/oracle/diag/rdbms/orcl/orcl/trace/orcl_arc2_4393.trc:
ORA-19815: : db_recovery_file_dest_size  (322230272 ) 00.00%,  0 ************************************************************************
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.


报错信息很明显是因为db_recovery_file_dest_size太小了,增加其大小步骤如下:

1.首先要停止oracle进程,可以kill掉ora_*进程


2.使用mount方式启动数据库

SQL>startup mount;


3.增加恢复日志空间

SQL>alter system set db_recovery_file_dest_size= 10G;


4.正常重启数据库

SQL>shutdown immediate;

SQL>startup;