如何删除flashback recovery area中的归档日志?
简单的在操作系统层面rm虽然释放了硬盘空间,但是V$FLASH_RECOVERY_AREA_USAGE中并不知道。
于是,当你希望再次enable flashback database时,会遇到如下错误:
SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38708: not enough space for first flashback database log file
> oerr ora 38708
38708, 00000, "not enough space for first flashback database log file"
// *Cause: An ALTER DATABASE FLASHBACK ON command failed because there
// was not enough space in the Recovery Area for the first
// flashback database log file.
// *Action: Make more space in the Recovery Area. For example, this
// can be done by increasing the value of
// DB_RECOVERY_FILE_DEST_SIZE.
很显然,我们需要做的不是简单地增大DB_RECOVERY_FILE_DEST_SIZE,因为通过通过如下知道归档日志占用99%的空间,没被清除。
SQL> select file_type,percent_space_used from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED
------------ ------------------
CONTROLFILE 0
ONLINELOG 0
ARCHIVELOG 99.81
BACKUPPIECE 0
IMAGECOPY 0
FLASHBACKLOG 0
我们需要做的就是这样简单的两句rman commands:
crosscheck archivelog all;
delete expired archivelog all;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15415488/viewspace-664008/ ,如需转载,请注明出处,否则将追究法律责任。