What is difference between Flash Recovery Area and Flashback Database?


About Flash Recovery Area

The flash recovery area is a directory on the storage that provides a centralized disk location for backup and recovery files. The directory location is specified by parameter DB_RECOVERY_FILE_DEST and the size of the recovery area is defined by parameter DB_RECOVERY_FILE_DEST_SIZE. If log_archive_dest_* is set to USE_DB_RECOVERY_FILE_DEST then Oracle creates archived logs in the flash recovery area. RMAN can also store its backups in the flash recovery area ( and stores the backups in FRA by default), and it uses it when restoring files during media recovery.

All files necessary to recover the database following a media failure are located in the flash recovery area ( if defined ).

The flash recovery area also acts as a disk cache for tape. The recommended strategy is store the backups in the FRA, to have more recent backups available on disk, then the backup and restore processes will be faster.

About Flashback Database

Flashback database is a new feature introduced in 10g.

It provides a way to quickly revert entire Oracle database to the state it was in at a past point in time. Also it is possible to bring a single table back in time.

Flashback database is different from traditional point in time recovery. To Flashback a database, Oracle uses older block images to back out changes to the database, what means that the oracle blocks are being overwritten for its before images to bring the database back in time.

If flashback database feature is enabled, during normal database operation, Oracle creates the Flashback logs, where the before image of the database blocks is stored previously to applying any change in this database blocks.

The following recovery-related files are stored in the flash recovery area:

– Current control file

— Online redo logs

— Archived redo logs

— Flashback logs

— Control file autobackups

— Datafile and control file copies

— Backup pieces

— Foreign archived redo log ( An archived redo log received by a logical standby database for a LogMiner session.)

Oracle automatically creates, deletes, and resizes Flashback logs in the flash recovery area. You only need to be aware of Flashback logs for monitoring performance and deciding how much disk space to allocate to the flash recovery area for Flashback logs.

Flashback Database is not true media recovery, because it does not involve restoring physical files. However, Flashback is preferable to using the RESTORE and RECOVER commands in some cases, because it is faster and easier, and does not require restoring the whole database.

You can limit the number of flashback logs stored by defining the parameter:

– DB_FLASHBACK_RETENTION_TARGET (dynamically modifiable) which defines the upper limit in minutes on how far back one can flashback the database.

Note that, you cannot manually delete the flashback logs, you need to turn flashback database off to delete the flashback logs.