Oracle Flashback Technology
Oracle Flashback technology is a group of Oracle AI Database features that let you view past states of database, database objects, transactions or rows or to rewind the database, database objects, transactions or rows to a previous state without using point-in-time media recovery.
With flashback features, you can:
-
Perform queries to show data as it looked at a previous point in time
-
Perform queries that return metadata that shows a detailed history of changes to the database
-
Recover tables or rows to a previous point in time
-
Automatically track and archive transactional data changes
-
Roll back a transaction and its dependent transactions while the database remains online
-
Undrop a table
-
Recover a database to a point-in-time without a restore operation
Other than the flashback database feature, most Oracle Flashback features use the Automatic Undo Management (AUM) system to obtain metadata and historical data for transactions. They rely on undo data, which are records of the effects of individual transactions. For example, if a user runs an UPDATE statement to change a salary from 1000 to 1100, then Oracle AI Database stores the value 1000 in the undo data.
Undo data is persistent and survives a database shutdown. By using flashback features, you can use undo data to query past data or recover from logical damage. Besides using it in flashback features, Oracle AI Database uses undo data to perform these actions:
-
Roll back active transactions
-
Recover terminated transactions by using database or process recovery
-
Provide read consistency for SQL queries
Oracle Flashback can address and rewind data that is compromised due to various human or operator errors that inadvertently or maliciously change data, cause bad installations and upgrades, and result in logical errors in applications. These problems use features such as flashback transaction, flashback drop, flashback table, and flashback database.
See Also:
Oracle AI Database Development Guide
Performing Flashback and Database Point-in-Time Recovery, Using Flashback Database and Restore Points, and Performing Block Media Recovery in the Oracle AI Database Backup and Recovery User’s Guide
Oracle Flashback Query
Oracle Flashback Query (Flashback Query) provides the ability to view data as it existed in the past by using the Automatic Undo Management system to obtain metadata and historical data for transactions.
Undo data is persistent and survives a database malfunction or shutdown. The unique features of Flashback Query not only provide the ability to query previous versions of tables, they also provide a powerful mechanism to recover from erroneous operations.
Uses of Flashback Query include:
-
Recovering lost data or undoing incorrect, committed changes. For example, rows that were deleted or updated can be immediately repaired even after they were committed.
-
Comparing current data with the corresponding data at some time in the past. For example, by using a daily report that shows the changes in data from yesterday, it is possible to compare individual rows of table data, or find intersections or unions of sets of rows.
-
Checking the state of transactional data at a particular time, such as verifying the account balance on a certain day.
-
Simplifying application design by removing the need to store certain types of temporal data. By using Flashback Query, it is possible to retrieve past data directly from the database.
-
Applying packaged applications, such as report generation tools, to past data.
-
Providing self-service error correction for an application, enabling users to undo and correct their errors.
Oracle Flashback Version Query
Oracle Flashback Version Query is an extension to SQL that you can use to retrieve the versions of rows in a given table that existed at a specific time interval.
Oracle Flashback Version Query returns a row for each version of the row
that existed in the specified time interval. For any given table, a new row version is
created each time the COMMIT statement is issued.
Oracle Flashback Version Query is a powerful tool that database administrators (database administrators) can use to run analysis to determine the source of problems. Additionally, application developers can use Oracle Flashback Version Query to build customized applications for auditing purposes.
Oracle Flashback Transaction
Oracle Flashback Transaction backs out a transaction and its dependent transactions.
DBMS_FLASHBACK.TRANSACTION_BACKOUT()
procedure rolls back a transaction and its dependent transactions while the database
remains online. This recovery operation uses undo data to create and run the
compensating transactions that return the affected data to its original state. You can
query the DBA_FLASHBACK_TRANSACTION_STATE view to see
whether the transaction was backed out using dependency rules or forced out by
either:-
Backing out nonconflicting rows
-
Applying undo SQL
Oracle Flashback Transaction increases availability during logical recovery by quickly backing out a specific transaction or set of transactions and their dependent transactions. You use one command to back out transactions while the database remains online.
Oracle Flashback Transaction Query
Oracle Flashback Transaction Query provides a mechanism to view all of the changes made to the database at the transaction level.
When used in conjunction with Oracle Flashback Version Query, it offers a fast and efficient means to recover from a human or application error. Oracle Flashback Transaction Query increases the ability to perform online diagnosis of problems in the database by returning the database user that changed the row, and performs analysis and audits on transactions.
Oracle Flashback Table
Oracle Flashback Table recovers a table to a previous point in time.
It provides a fast, online solution for recovering a table or set of tables that were changed by a human or application error. In most cases, Oracle Flashback Table alleviates the need for administrators to perform more complicated point-in-time recovery operations. The data in the original table is not lost when you use Oracle Flashback Table because you can return the table to its original state.
Oracle Flashback Drop
Although there is no easy way to recover dropped tables, indexes, constraints, or triggers, Oracle Flashback Drop provides a safety net when you are dropping objects.
When you drop a table, it is automatically placed into the Recycle Bin. The Recycle Bin is a virtual container where all dropped objects reside. You can continue to query data in a dropped table.
Restore Points
When an Oracle Flashback recovery operation is performed on the database, you must determine the point in time—identified by the system change number (SCN) or time stamp—to which you can later flash back the data.
OPEN RESETLOGS
command by using guaranteed restore points. Guaranteed restore points allow major
database changes—such as database batch jobs, upgrades, or patches—to be quickly undone
by ensuring that the undo required to rewind the database is retained.Using the restore points feature provides the following benefits:
-
The ability to quickly restore to a consistent state, to a time before a planned operation that has gone awry (for example, a failed batch job, an Oracle software upgrade, or an application upgrade)
-
The ability to resynchronize a snapshot standby database with the primary database
-
A quick mechanism to restore a test or cloned database to its original state
Oracle Flashback Database
Oracle Flashback Database is the equivalent of a fast rewind button, quickly returning a database to a previous point in time without requiring a time consuming restore and roll forward using a backup and archived logs.
The larger the size of the database, the greater the advantage of using Oracle Flashback Database for fast point in time recovery.
Enabling Oracle Flashback Database provides the following benefits:
-
Fast point in time recovery to repair logical corruptions, such as those caused by administrative error.
-
Useful for iterative testing when used with Oracle restore points. A restore point can be set, database changes implemented, and test workload run to assess impact. Oracle Flashback Database can then be used to discard the changes and return the database to the original starting point, different modifications can be made, and the same test workload run a second time to have a true basis for comparing the impact of the different configuration changes.
-
Data Guard uses Oracle Flashback Database to quickly reinstantiate a failed primary database as a new standby (after a failover has occurred), without requiring the failed primary to be restored from a backup.
-
Flashback database operates at the CDB level or the PDB level.
Flashback Pluggable Database
You can rewind a PDB to a previous SCN. The FLASHBACK PLUGGABLE DATABASE command, which is available through SQL or Recovery Manager, is analogous to FLASHBACK DATABASE in a non-CDB.
Flashback PDB protects an individual PDB against data corruption, widespread user errors, and redo corruption. The operation does not rewind data in other PDBs in the CDB.
CREATE RESTORE POINT ... FOR PLUGGABLE
DATABASE to create
a PDB restore point, which is only usable within a specified PDB. As with CDB restore
points, PDB restore points can be normal or guaranteed. A guaranteed restore point never
ages out of the control file and must be explicitly dropped. If you connect to the root,
and if you do not specify the FOR PLUGGABLE
DATABASE
clause, then you create a CDB restore point, which is usable by all PDBs.A special type of PDB restore point is a clean restore point, which you can only create when a PDB is closed. For PDBs with shared undo, rewinding the PDB to a clean restore point is faster than other options because it does not require restoring backups or creating a temporary database instance.
Block Media Recovery Using Flashback Logs or Physical Standby Database
After attempting to automatically repair corrupted blocks, block media recovery can optionally retrieve a more recent copy of a data block from the flashback logs to reduce recovery time.
Automatic block repair allows corrupt blocks on the primary database to be automatically repaired as soon as they are detected, by using good blocks from a physical standby database.
V$DATABASE_BLOCK_CORRUPTION table.
You can subsequently issue the RMAN RECOVER BLOCK command to fix
the associated block. In addition, the RMAN RECOVER BLOCK command
restores blocks from a physical standby database, if it is available.Flashback Data Archive
The Flashback Data Archive is stored in a tablespace and contains transactional changes to every record in a table for the duration of the record's lifetime.
The archived data can be retained for a much longer duration than the retention period offered by an undo tablespace, and used to retrieve very old data for analysis and repair.