[Oracle]为何Archivelog 没有马上被删除

Posted 健哥的数据花园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Oracle]为何Archivelog 没有马上被删除相关的知识,希望对你有一定的参考价值。

[Oracle]为何Archivelog 没有马上被删除

客户设置了 Archivelog 的 deletion policy 是 CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;

所以,他认为只要在Standby 端提交了,就应该将此 Archivelog 自动删除。
但是,客户仍然发现 FRA 满了,所以提出了质疑。

经过调查,我认为,
删除不是马上发生的,只有当系统有需要时,才会进行。
Applied,只是保证这个Archivelog 成为了 删除的候选对象(reclaimable)

论据:
======================================================================
Oracle Database does not
delete eligible files from the flash recovery area
  until the space must be reclaimed for some other purpose. ***1
......
Oracle Database automatically deletes eligible files to reclaim space in the recovery area as needed. ***2
...
- Archived redo logs are not eligible for deletion
  until all the consumers of the logs have satisfied their requirements ( If Archived Redo Log Deletion Policy is set ) . ***4

论点:
======================================================================
  上面的 ***4 说:
       applied  之后,它们只是变成 eligible 。

  上面的 ***1 和 ***2 说:
      FRA有需要的时候,才会 删除的。

结论:
======================================================================
   applied 了,也不是马上就删除的。有需要的时候,由系统自动来删除。

以上是关于[Oracle]为何Archivelog 没有马上被删除的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库的归档模式(archivelog mode)

Oracle Logminer 分析重做日志RedoLog和归档日志ArchiveLog

Oracle如何正确删除archivelog文件

archivelog满,导致oracle无法访问。

How to Delete Archivelog Using RMAN in Oracle

『ORACLE』修改归档时报错:instance recovery required, cannot set ARCHIVELOG mode