I just did a test where
- I had a tiny FRA (2G)
- put flashback logs in there
- put archivelogs elsewhere
- did continuous large delete/insert operations
The FRA eventually fills:
2017-10-19T12:07:46.533753+08:00
Errors in file C:\ORACLE\diag\rdbms\np122\np122\trace\np122_m000_9708.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.
but DML operations are allowed to continue without interruption. The flashback logs were 200MB each, so I had 10 in my FRA. The oldest ones simply get deleted and overwritten by newer ones.
This is because 'db_flashback_retention_target' is exactly that - a target, not a guarantee. I then tried to do a flashback to a time within my target (default of 1440):
SQL> FLASHBACK DATABASE TO TIMESTAMP SYSDATE-0.4/24;
FLASHBACK DATABASE TO TIMESTAMP SYSDATE-0.4/24
*
ERROR at line 1:
ORA-38729: Not enough flashback database log data to do FLASHBACK.
which makes sense because I threw away some of those logs due to space pressure.