zl程序教程

您现在的位置是:首页 >  其它

当前栏目

ora-16038 19809

ORA
2023-09-27 14:28:18 时间
ORA-16038: log 3 sequence# 1126 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 3 thread 1: /opt/oracle/product/10.

今天有客户报启动数据库遇到如下问题:
ORA-16038: log 3 sequence# 1126 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: /opt/oracle/product/10.1/oradata/orcl/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

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      D:/oracle/product/10.2.0/flash
                                                 _recovery_area
db_recovery_file_dest_size           big integer 2G


执行下面的语句,可以看到闪回恢复区的使用情况
select reason,object_type,suggested_action from dba_outstanding_alerts;   ——我在我电脑里试了,但是如果是没有打开的时候是不允许查询的,打开后我查询,没有数据。


解决方法:

1.将归档设置到其他目录,修改alter system set log_archive_dest = 其他路径

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

3.增大闪回恢复区。
ALTER SYSTEM SET db_recovery_file_dest_size=4g scope=both ;    ——这个方法是比较管用的,一下就搞定了、