查询官方文档
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.
得知是DB_RECOVERY_FILE_DEST里面的文件超过了指定的大小。
查询该空间的使用情况:
select * from v$recovery_file_dest;
NAME
----------------------------------------------------------------
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----------- ---------- ----------------- ---------------
F:developeroracleproduct10.2.0 lash_recovery_area
2147483648 2547483848 0 73
发现的确空间使用超过了限制。既然已经发现问题,我们可以将空间增大来解决该问题:
alter system set db_recovery_file_dest_size=4G scope=both;
增大空间后问题解决,但是这不是解决问题的根本方法,为什么2G的空间还不够用呢?实际上archived redolog是默认存放在db_recovery_file_dest下的,如果归档的redolog过多,则导致了该目录被占满,可以指定特定的归档redolog位置来解决,避免使用默认的空间。
alter system set log_archive_dest='d:\archivedlog' scope=both;
这样是否可以真的避免问题发生了么?不一定,如果归档的日志太多,分开存放也不一定有用。归档的日志太多,有可能是备份的数据太多导致,可以删除过多的备份来解决:
查询无效归档日志
RMAN>crosscheck archivelog all;
删除无效归档日志
RMAN>delete expired archivelog all;
然后设定合理的备份策略来避免备份归档的日志太多
RMAN>configure retention policy to recovery window of 7 days;
RMAN>configure retention policy to redundancy 3;
OVER
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25389203/viewspace-692693/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25389203/viewspace-692693/