【翻译自mos文章】ORA-19815, Flashback Logs-Space management

ORA-19815, Flashback Logs-Space management (文档 ID 369755.1)

适用于:
Oracle Database - Enterprise Edition - Version 10.1.0.2 to 11.2.0.3 [Release 10.1 to 11.2]
Information in this document applies to any platform.
 ***Checked for relevance on 08-Jan-2014***

目标:
recovery file dest被flashback log 撑爆了,在alert日志中报ora-19815错误,需要remove or reuse 掉flashback log(FBL)

解决方案:
flashback logs 是被oracle 内部处理的,dba不能控制flashback logs。这意味着dba不能手工delete flashback logs,唯一的方法是disable掉 flashback


The FlashBack Logs can ONLY be deleted by DISABLING FLASHBACK  on database level
SQL> startup mount
      alter database flashback off;
      alter database open;


当遇到空间压力时,flashback log 基于如下2种情况被deleted

1)当一个归档日志被deleted时,oracle 会delete 掉 被归档日志所依赖的flashback logs

2)当quota被收缩时,flashback log 被deleted以回收disk space
   减小DB_RECOVERY_FILE_DEST_SIZE参数值到一个特定值,以便让flashback log 遇到space pressure,老的flashback log 将会被deleted

我们可能遇见下面的bug:即使遇到fra区中的空间压力,flashback log 也不会被deleted。

Bug 5106952  FLASHBACK LOG SPACE NOT BEING RECLAIMED
Fixed In Ver: 11.0
Also the bug is  fixed in patch set 10.1.0.6  and 10.2.0.3 .

虽然Bug 5106952 在11g中被fix了,这个过程依然可以被用来delete flashback log

1.- First of all we need to check if there is any guaranteed restore point defined:

     SQL> select name,scn,time,database_incarnation#,guarantee_flashback_database,storage_size from v$restore_point;

 2.- Remove all the restore points

     SQL> Drop restore point <name>;

  3.- Check how much space is used before turning off Flashback 

    SQL> select * from v$flash_recovery_area_usage;

 4.- SQL> ALTER DATABASE FLASHBACK OFF;

 5.-  Now you can delete the Flashback logs manually

 6.- SQL> ALTER DATABASE FLASHBACK ON;

 7.- Check that there are no flashback logs before turning back on

       SQL> select * from v$flash_recovery_area_usage;



 

你可能感兴趣的:(ora-19815)