日期:2014-05-16  浏览次数:20561 次

ORA-19809: limit exceeded for recovery files问题

ORA-16038: log 3 sequence# 472 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\CHEP\REDO03.LOG'

查了一下错误信息
ORA-19809: limit exceeded for recovery files
Cause: The limit for recovery files specified by the DB_RECOVERY_FILE_DEST_SIZE was exceeded.
Action: The error is accompanied by 19804. See message 19804 for further details.

ORA-19804: cannot reclaim string bytes disk space from string limit
Cause: Oracle cannot reclaim disk space of specified bytes from the DB_RECOVERY_FILE_DEST_SIZE limit.
Action: There are five possible solutions:
1) Take frequent backup of recovery area using RMAN.
2) Consider changing RMAN retention policy.
3) Consider changing RMAN archivelog deletion policy.
4) Add disk space and increase DB_RECOVERY_FILE_DEST_SIZE.
5) Delete files from recovery area using RMAN.

oracle10g在默认情况下,归档日志是保存在闪回恢复区的,如果你建库的时候用的默认设置,
闪回恢复区应该是2G,空间被占满了以后就无法再归档了
你可以用下面的命令查看其大小和存储位置
SQL> show parameter db_recovery_file_dest;

NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest??????????????? string????? C:\oracle\product\10.2.0/flash_recovery_area
db_recovery_file_dest_size?????????? big integer 2G


解决方法:
1.增大闪回恢复区。
ALTER SYSTEM SET db_recovery_file_dest_size=4g scope=both;

2.将归档设置到其他目录,修改alter system set log_archive_dest = 其他路径
可事先用show parameter log_archive_dest查看

3.转移或者删除闪回恢复区里的归档日志。