方法一:增大閃回恢複區
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
前面的方法只是其中的一半,第一種和第二種方法中的轉移歸檔日誌還沒有做過!