今天又遇到了这个问题,alert 日志中的报错信息如下:
其实问题的原因很简单,放归档的 fra 空间满了,导致无法归档,进而oracle挂起,注意这里db_recovery_file_dest 只是一个逻辑上的限制 ,可能放fra的目录还有空间剩余,但是oracle不会去用。平时还是要多多关注fra的使用情况。可以使用v$flash_recovery_area_usage 来查看fra的使用情况。
解决方法:
rman>crosscheck archivelog all;
rman>delete expired archivelog all;
alert.log:
************************************************************************
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_arc1_7088.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 13112320 bytes disk space from 4102029312 limit
ARC1: Error 19809 Creating archive log file to 'D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_09_12\O1_MF_1_1750_%U_.ARC'
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_7072.trc:
ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使用 100.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.
************************************************************************
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_7072.trc:
ORA-19809: 超出了恢复文件数的限制
ORA-19804: 无法回收 13112320 字节磁盘空间 (从 4102029312 限制中)
ARCH: Error 19809 Creating archive log file to 'D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_09_12\O1_MF_1_1750_%U_.ARC'
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_7072.trc:
ORA-16038: 日志 1 sequence# 1750 无法归档
ORA-19809: 超出了恢复文件数的限制
ORA-00312: 联机日志 1 线程 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG'
USER (ospid: 7072): terminating the instance due to error 16038
Thu Sep 12 10:43:03 2013
Instance terminated by USER, pid = 7072