Oracle 10g默认的归档日志存放在flash_recovery_area,如果归档日志超过了默认值的大小,则会报ORA-16014的错误.


1.出错
SQL*Plus: Release 10.2.0.2.0- Production on Sun May 3010:32:432010

Copyright (c) 
19822005, Oracle. All Rights Reserved.


Connected 
to:
Oracle 
Database 10g Enterprise Edition Release 10.2.0.2.0- Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining options
SQL
> startup mount
ORACLE instance started.

Total System Global Area 
285212672 bytes
Fixed Size 
1260396 bytes
Variable Size 
96470164 bytes
Database Buffers 180355072 bytes
Redo Buffers 
7127040 bytes
Database mounted.
SQL
>alterdatabaseopen
2/
alterdatabaseopen
*
ERROR at line 
1:
ORA
-16014log1 sequence# 86not archived, no available destinations
ORA
-00312: online log1 thread 1'/u01/app/oracle/oradata/orcl/redo01.log'


2.查看归档日志区的大小
SQL> show parameter db_rec

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/flash_recovery
 _area
db_recovery_file_dest_size big 
integer 2G
db_recycle_cache_size big 
integer0
3.检查flash recovery area的使用情况
SQL>select*from v$flash_recovery_area_usage;

FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE 000
ONLINELOG 
000
ARCHIVELOG 
98.77052
BACKUPPIECE 
000
IMAGECOPY 
000
FLASHBACKLOG 
000

6 rows selected.

SQL
>selectsum( PERCENT_SPACE_USED )*3/100from v$flash_recovery_area_usage;

SUM(PERCENT_SPACE_USED)*3/100
-----------------------------
2.9631

4.计算后,发现使用了2.96G>2G,将值设为4G,重新启动,成功
SQL>alter system set db_recovery_file_dest_size =4G;

System altered.

SQL
>alterdatabaseopen;

Database altered.

 

总结:出现这两种报错 1.在于db_recovery_file_dest_size 指定(flash_recovery_area)空间太小,归档日志已经没可用空间做归档。

2.不管归档使用任何径和方式,物理磁盘要保存足够可用的空间。