分类: Oracle
2011-05-31 13:33:10
今天在BI开发过程中,有人反映无法登录,然后试了一下,发现的确在登录PL/SQL Developer时提示归档器失败。随即检查alert_orcl.log,发现错误信息为:ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00%,使用语句查询
SELECT substr(name, 1, 30) name, space_limit AS quota,space_used AS used,space_reclaimable AS reclaimable,number_of_files AS files FROM v$recovery_file_dest ;
使用率100%,所以认定是db_recovery_file_dest目录满了所致。使用show parameter db_recovery_file_dest命令查询到磁盘目录,将不用的archive导出,腾出磁盘空间。
再使用命令,将日志组清空:
alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 3;
重启实例,检查连接,成功。
另外:可以使用rman来解决此问题,具体请参阅eygle的blog
后记:
第二天一早,又发现不可用,这次的错误信息是
Errors in file e:\oracle\product\10.2.0\admin\orcl\bdump\orcl_arc1_7296.trc:
ORA-16038: log 1 sequence# 674 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'
数据库再一次挂起。
使用rman删除旧的过期的日志
c:\>rman
rman>connect target sys/oracle
rman>crosscheck archivelog all;
rman>delete noprompt expired copy;
..........
rman>
执行后,检查空间使用情况
SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE 0 0 0
ONLINELOG 0 0 0
ARCHIVELOG 8.48 0 4
BACKUPPIECE 0 0 0
IMAGECOPY 0 0 0
FLASHBACKLOG 50.69 50.36 153
已选择6行。
SQL>alter database open
可以看到空间使用率恢复正常。
还可以通过扩大flash区大小来暂时缓解,但这种方法应属于指标不治本。
alter system set db_recovery_file_dest_size=4G scope=both;