日期:2014-05-17  浏览次数:20906 次

flash_recovery_area空间不足
通过imp导入数据时没反映,后来发现是 db_recovery_file_dest_size=2G,而且flash_recovery_area已占用2G的空间,将其增大到4G,后来空间又满,最后增大到10G,且在导入过程中直接将flash_recovery_area中的之前的日志删了,后来导入又没成功,但这时空间只占用了4G左右,而那个目录空间远不止10g. 后来将flash_recovery_area目录中的内容移动到其它目录,也是一导入几个小表后就死了。查看alert文件提示db_recovery_file_dest_size 占用100%。为什么为这样呢,明明flash_recovery_area目录只使用了几十M。

SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 631
Next log sequence to archive 631
Current log sequence 633


SQL> show parameters db_recovery_file_dest;

NAME TYPE VALUE
------------------ ------------- -------------------
db_recovery_file_dest string /usr/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 10G


------解决方案--------------------
1、应该是archive log在db_recovery_file_dest_size对应的目录。所以,早导入的时候快速占满。把archive log换个路径即可

2、查看alert文件提示db_recovery_file_dest_size 占用100%。为什么为这样呢,明明flash_recovery_area目录只使用了几十M。
flash_recovery_area 需要rman才能释放

RMAN> rman target /;
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
------解决方案--------------------
flash_recovery_area 要用rman释放,释放后,再试试看