Flashback Transaction Backout
A given transaction in a complex application may be consistent and atomic, but the validity of the
transaction may not be validated until many other transactions have taken place; in other words,
the ill effects of an earlier transaction may cause other transactions to further modify the same
data as the original transaction. Trying to manually track the interdependent successive transactions
is tedious and error-prone. Flashback Transaction makes it easy to identify and roll back the
offending transaction and optionally all dependent transactions.
To enable Flashback Transaction Backout, enable archiving (if it is not already in ARCHIVELOG
mode) while the database is mounted (but not open):
alter database archivelog;
Next, run these commands to create at least one archived redo log file and to add additional
transaction information to the log files.
alter system archive log current;
alter database add supplemental log data;
Adding the supplemental log data will have a noticeable impact on performance in a heavy
DML environment. Be sure to monitor system resources before and after you enable the additional
logging to assess the cost of the logging operation. Finally, open the database:
alter database open;
You leverage Flashback Transaction Backout features via the DBMS_FLASHBACK procedure
TRANSACTION_BACKOUT. After you run DBMS_FLASHBACK.TRANSACTION_BACKOUT, the
DML against the related tables is performed but not committed; you must then review the tables
DBA_FLASHBACK_TRANSACTION_STATE and DBA_FLASHBACK_TRANSACTION_REPORT to
see if the correct transactions were rolled back.
Pages:
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389