SQL> conn hr/hr
ERROR:
ORA-00257: archiver error. Connect internal only, until freed.
Warning: You are no longer connected to ORACLE.
看提示是recovery_file_dest满了。通过alert验证
Errors in file /data01/apps/oracle/diag/rdbms/dwh01/dwh01/trace/dwh01_arc2_3412.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 42827776 bytes disk space from 4039114752 limit
ARC2: Error 19809 Creating archive log file to '/data01/apps/oracle/flash_recovery_area/DWH01/archivelog/2013_04_18/o1_mf_1_113_%u_.arc'
是因为recovery_file_dest满了,测试环境,所以直接手工删了,但空间没有释放。
SQL> select * from v$recovery_file_dest;
NAME
--------------------------------------------------------------------------------
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----------- ---------- ----------------- ---------------
/data01/apps/oracle/flash_recovery_area
4039114752 4004434944 0 93
SPACE_USED还是满的,归档数仍然是93,实际上已经删光了。
这种情况在衣钩大师的blog中找到了解决办法:
http://www.eygle.com/archives/2005/03/oracle10gecieif.html
[oracle@rhel63db ~]$ rman target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
此时问题得到解决:
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----------- ---------- ----------------- ---------------
/data01/apps/oracle/flash_recovery_area
4039114752 0 0 0
另外还有这样的解决办法,是将闪回空间备份到第三方介质
RMAN> backup recovery area;