方法一:增大闪回恢复区
SQL> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 2G
SQL> alter SYSTEM SET db_recovery_file_dest_size=5g;
System altered.
方法二:删除闪回恢复区里的归档日志
SQL> show parameter db_recovery_file_dest_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 10G
SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE .07 0 1
ONLINELOG 1.46 0 3
ARCHIVELOG 49.68 0 126
BACKUPPIECE 0 0 0
IMAGECOPY 0 0 0
FLASHBACKLOG 0 0 0
6 rows selected.
登陆rman:
[oracle@localhost LMAIL]$ rman target / nocatalog
RMAN>list archivelog all;
RMAN>crosscheck archivelog all;
RMAN>change archivelog until logseq=130 delete;
SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE .07 0 1
ONLINELOG 1.46 0 3
ARCHIVELOG 1.26 0 5
BACKUPPIECE 0 0 0
IMAGECOPY 0 0 0
FLASHBACKLOG 0 0 0
6 rows selected.
其实解决方法有3种:
1.将归档设置到其他目录,修改alter system set log_archive_dest = 其他路径
2.转移或者删除闪回恢复区里的归档日志。
3.增大闪回恢复区。ALTER SYSTEM SET db_recovery_file_dest_size=3g
前面的方法只是其中的一半,第一种和第二种方法中的转移归档日志还没有做过!