6. Flashback Technology
• Perform queries that return past data
• 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
9. Flashback Query
SELECT AS OF
Requirements:
• FLASHBACK Privilege
Example:
SELECT *
FROM employees
AS OF TIMESTAMP
TO_TIMESTAMP('2004-04-04
09:30:00', 'YYYY-MM-DD
HH:MI:SS')
WHERE last_name = 'Chung';
10. Flashback Version Query
VERSIONS BETWEEN { SCN | TIMESTAMP }
start AND end
Example:
SELECT versions_startscn,
versions_starttime,
versions_endscn, versions_endtime,
versions_xid, versions_operation,
last_name, salary
FROM employees
VERSIONS BETWEEN TIMESTAMP
TO_TIMESTAMP('2008-12-18 14:00:00',
'YYYY-MM-DD HH24:MI:SS')
AND TO_TIMESTAMP('2008-12-18
17:00:00', 'YYYY-MM-DD HH24:MI:SS')
WHERE first_name = 'John';
Pseudocolumns:
• VERSIONS_STARTSCN
• VERSIONS_STARTTIME
• VERSIONS_ENDSCN
• VERSIONS_ENDTIME
• VERSIONS_XID
• VERSIONS_OPERATION
Requirements:
• FLASHBACK Privilege
11. Oracle Flashback Transaction Query
View:
FLASHBACK_TRANSACTION_QUERY
Requeriments:
• SUPPLEMENTAL LOG DATA;
• SUPPLEMENTAL LOG DATA (PRIMARY
KEY)
• SUPPLEMENTAL LOG DATA (FOREIGN
KEY)
• SELECT ANY TRANSACTION Privilege
OR FLASHBACK AND READ OR SELECT
Example:
SELECT xid, operation, start_scn,
commit_scn, logon_user, undo_sql
FROM flashback_transaction_query
WHERE xid =
HEXTORAW('000200030000002D')
;
14. Flashback Transaction
DBMS_FLASHBACK Package
Requeriments:
• EXECUTE
ON DBMS_FLASHBACK Privilege
• ALTER DATABASE ADD
SUPPLEMENTAL LOG DATA
(PRIMARY KEY) COLUMNS;
• ALTER DATABASE ADD
SUPPLEMENTAL LOG DATA
(FOREIGN KEY) COLUMNS;
Example(procedure):
• TRANSACTION_BACKOUT
Views:
• DBA_FLASHBACK_TXN_STATE
• DBA_FLASHBACK_TXN_REPORT
15. Flashback Data Archive
Once the undo information is lost, the
view of the past is lost also
Privileges:
• FLASHBACK ARCHIVE ADMINISTER
• CREATE FLASHBACK ARCHIVE
• ALTER FLASHBACK ARCHIVE
• DROP FLASHBACK ARCHIVE
• FLASHBACK ARCHIVE object
Package
• DBMS_FLASHBACK_ARCHIVE
Requirements:
• Name of the first tablespace of the Flas
hback Data Archive
• Name of the Flashback Data Archive
• Quota (optional)
• Retention time
• Optimize
Views:
• DBA_FLASHBACK_ARCHIVE
• DBA_FLASHBACK_ARCHIVE_TS
• DBA_FLASHBACK_ARCHIVE_TABLES
16. Flashback Table
Flashback the entire table.
Privileges:
• FLASHBACK ANY TABLE OR
FLASHBACK OBJECT
• READ or SELECT, INSERT, DELETE,
and ALTER privileges on the table
Requirements:
• ROW MOVEMENT (rowids)
Example:
• FLASHBACK TABLE hr.employees TO
TIMESTAMP TO_TIMESTAMP('2013-
10-17 09:30:00', 'YYYY-MM-DD
HH:MI:SS');
Can flashback to time, scn and restore
point.
17. Flashback Drop
Database parameter: recyclebin.
Not a basic parameter!
Do not use UNDO!
The table is only renamed on drop!
Privileges:
• DROP
• READ or SELECT and FLASHBACK
Requirements:
• ALTER SYSTEM SET RECYCLEBIN='on'
SCOPE=SPFILE;
Views:
• RECYCLEBIN
• USER_RECYCLEBIN
• DBA_RECYCLEBIN
• (SHOW RECYCLEBIN)
18. Flashback Database
Flashback the entire database!
Use Flashback logs
Offline operation
Privileges:
• SYSDBA, SYSBACKUP OR SYSDG
View:
• V$FLASHBACK_DATABASE_LOG
Requirements.
• FRA Configured (OMF)
• ARCHIVELOG
• ALTER DATABASE FLASHBACK ON;
Parameter:
• DB_FLASHBACK_RETENTION_TARGET
19. Best Pratices
• UNDO RETENTION
• UNDO TABLESPACE SIZE
• ADD SUPPLEMENTAL LOG DATA AT LEAST
• DOT NOT USE TRIGGERS FOR LOG. USE FLASHBACK DATA ARCHIVE!
• CREATE YOUR OWN INDICES ON FLASBACK DATA ARCHIVE BASE TABLES
• ENABLE RECYCLEBIN
• ENABLE FLASHBACK DATABASE
20. FLASHBACK <> DBPITR
• Media recovery
• Time
• Logical <> phisical
• Redo, Undo and Flashback logs <> backupsets and image copies